Golang switch语句总结
本文内容纲要:
-switch语句基本结构
-多case语句
-fallthrough语句
-无条件表达式switch语句
-小结
switch语句基本结构
switch条件表达式{
case常量表达式1:
语句1
case常量表达式2:
语句2
.
.
.
case常量表达式n:
语句n
default:
语句n+1
}
执行流程
(1)计算条件表达式的值value
(2)如果value满足某条case语句,则执行该语句,执行完跳出switch语句
(3)如果value不满足所有的case语句:
(3.1)如果有default,则执行该语句,执行完跳出switch语句
(3.2)如果没有default,则直接跳出switch语句
注意事项
(1)条件表达式可以是任意Go语言支持的数据类型
(3)不需要break语句
(4)default分支为可选项,但最多只能有一个default分支
(5)如果有两个以上的case分支的常量表达式取得相同的值,则编译会出错
多case语句
有时在一条case语句中可以对多个条件值进行测试,任意一个条件满足都会执行case语句体
funcmain(){
varteststring
fmt.Print("请输入一个字符串:")
fmt.Scan(&test)
switchtest{
case"c":
fmt.Println("c")
case"java":
fmt.Println("java")
case"go","golang":
fmt.Println("hellogolang")
default:
fmt.Println("python")
}
}
//请输入一个字符串:go
//hellogolang
//请输入一个字符串:golang
//hellogolang
fallthrough语句
通常情况下,switch语句检测到符合条件的第一个case语句,就会执行该分支的代码,执行完会直接跳出switch语句。使用fallthrough
语句,可以在执行完该case语句后,不跳出,继续执行下一个case语句。
funcmain(){
varteststring
fmt.Print("请输入一个字符串:")
fmt.Scan(&test)
switchtest{
case"go":
fmt.Println("hellogo")
case"golang":
fmt.Println("hellogolang")
fallthrough
case"gopher":
fmt.Println("hellogopher")
case"java":
fmt.Println("java")
}
}
//请输入一个字符串:go
//hellogo
//请输入一个字符串:golang
//hellogolang
//hellogopher
无条件表达式switch语句
如果switch关键字后面没有条件表达式,则必须在case语句中进行条件判断,即类似于ifelseif
语句
funcmain(){
varscoreint
fmt.Print("请输入成绩:")
fmt.Scan(&score)
switch{
casescore>=90:
fmt.Println("good")
casescore>=80&&score<90:
fmt.Println("well")
casescore<80:
fmt.Println("ok")
}
}
//请输入成绩:60
//ok
//请输入成绩:85
//well
小结
平时写Go语言很少用到switch语句,有时候突然用到,一些细节可能又忘了,所以写一篇博客总结一下。
本文内容总结:switch语句基本结构,多case语句,fallthrough语句,无条件表达式switch语句,小结,
原文链接:https://www.cnblogs.com/yahuian/p/11615408.html