go之switch语句

作用

  switch是为了优雅的替换掉if-else

语法

switch 变量 {
  case 条件:
  	执行1
  case 条件2:
  	执行2
  case 条件3:
  	执行3
}

基本使用

package main

import "fmt"

func main() {
	var a =5
	switch a {
	case 3:
		fmt.Println("a是3")
	case 5:
		fmt.Println("a是5")
	case 10:
		fmt.Println("a是10")
	}
}
//a是5

default的使用(默认情况)

  其他情况都不匹配时,将运行默认的情况

package main

import "fmt"

func main() {
	var a =2
	switch a {
	case 3:
		fmt.Println("a是3")
	case 5:
		fmt.Println("a是5")
	case 10:
		fmt.Println("a是10")
	default:
		fmt.Println("不知道你是几")
	}
}
// 不知道你是几

多表达式判断

  通过用逗号分隔,可以在一个case中包含多个表达式

package main

import "fmt"

func main() {
	var a =9
	switch a {
	case 1,2,3:
		fmt.Println("a是3")
	case 4,5,6,7,8,9:
		fmt.Println("a是5")
	case 10,11,12,15:
		fmt.Println("a是10")
	default:
		fmt.Println("不知道你是几")
	}
}
//a是5

无表达式

  在switch语句中,表达式是可选的,可以被省略。如果省略表达式,则表示这个switch语句等同于switch true ,并且每个case表达式都被认定为有效,相应的代码块也会被执行

package main

import "fmt"

func main() {
	var a = 4
	switch {
	case a == 2 || a == 3: // 条件
		fmt.Println("2,3")
	case a == 4: // 条件
		fmt.Println("4")
	default:
		fmt.Println("不知道")
	}
}
//4

Fallthrough的使用

  在go中,每执行完一个case后,会从switch语句中跳出来,不再做后续case的判断和执行,使用Fallthrough语句可以在已经执行完成的case之后,把控制权转移到下一个case的执行代码中

package main

import "fmt"

func main() {
	var a = 4
	switch a {
	case 2, 3:
		fmt.Println("2,3")
		fallthrough
	case 4, 5:
		fmt.Println("4,5")
		fallthrough // 位置必须是case内部,五条件执行下一个
	case 6, 7:
		fmt.Println("6,7")
		//fallthrough  // 位置必须是case内部,五条件执行下一个
	default:
		fmt.Println("不知道")
	}
}
// 结果
//4,5
//6,7

  注意:Fallthrough语句应该是case子句的最后一个语句,如果他出现在了case语句的中间,编译器将会报错fallthrough statement out of place

 

posted @ 2022-09-08 10:32  那就凑个整吧  阅读(74)  评论(0编辑  收藏  举报