go之switch语句
作用
switch是为了优雅的替换掉if-else
语法
1 2 3 4 5 6 7 8 | switch 变量 { case 条件: 执行1 case 条件2: 执行2 case 条件3: 执行3 } |
基本使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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" ) } }<br> //a是5 |
default的使用(默认情况)
其他情况都不匹配时,将运行默认的情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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( "不知道你是几" ) } }<br> // 不知道你是几 |
多表达式判断
通过用逗号分隔,可以在一个case中包含多个表达式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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( "不知道你是几" ) } }<br> //a是5 |
无表达式
在switch语句中,表达式是可选的,可以被省略。如果省略表达式,则表示这个switch语句等同于switch true ,并且每个case表达式都被认定为有效,相应的代码块也会被执行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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( "不知道" ) } }<br> //4 |
Fallthrough的使用
在go中,每执行完一个case后,会从switch语句中跳出来,不再做后续case的判断和执行,使用Fallthrough语句可以在已经执行完成的case之后,把控制权转移到下一个case的执行代码中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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( "不知道" ) } }<br> // 结果<br>//4,5<br>//6,7 |
注意:Fallthrough语句应该是case子句的最后一个语句,如果他出现在了case语句的中间,编译器将会报错fallthrough statement out of place
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具