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

浙公网安备 33010602011771号