Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面
的case代码:
示例1:
package main import "fmt" func main() { num := 3 switch num { case 1: fmt.Println("按下的是1楼") case 2: fmt.Println("按下的是2楼") case 3: fmt.Println("按下的是3楼") case 4: fmt.Println("按下的是4楼") } }
#执行结果
按下的是3楼
示例2:
package main import "fmt" func main() { num := 5 switch num { case 1: fmt.Println("按下的是1楼") //break //go语言保留了break关键字,跳出switch语言,不写,默认就包含了。 case 2: fmt.Println("按下的是2楼") case 3: fmt.Println("按下的是3楼") case 4: fmt.Println("按下的是4楼") default: fmt.Println("按下的是xxx楼") } }
#执行结果
按下的是xxx楼
示例3: 需要输入按下的楼层
package main import "fmt" func main() { var num int fmt.Printf("请按下楼层:") fmt.Scan(&num) switch num { case 1: fmt.Println("按下的是1楼") case 2: fmt.Println("按下的是2楼") case 3: fmt.Println("按下的是3楼") case 4: fmt.Println("按下的是4楼") default: fmt.Println("按下的是xxx楼") } }
#执行结果:
请按下楼层:2 #输入2 按下的是2楼
用途:fallthrough //不跳出switch语句,后面的无条件执行
示例4:
package main import "fmt" func main() { var num int fmt.Printf("请按下楼层:") fmt.Scan(&num) switch num { case 1: fmt.Println("按下的是1楼") fallthrough //不跳出switch语句,后面的无条件执行 case 2: fmt.Println("按下的是2楼") fallthrough case 3: fmt.Println("按下的是3楼") fallthrough case 4: fmt.Println("按下的是4楼") fallthrough default: fmt.Println("按下的是xxx楼") } }
#执行结果
请按下楼层:1 按下的是1楼 按下的是2楼 按下的是3楼 按下的是4楼 按下的是xxx楼
示例5: (推荐用法)
package main import "fmt" func main() { switch num := 1; num { case 1: fmt.Println("按下的是1楼") case 2: fmt.Println("按下的是2楼") case 3: fmt.Println("按下的是3楼") case 4: fmt.Println("按下的是4楼") default: fmt.Println("按下的是xxx楼") } }
#执行结果:
按下的是1楼
示例6: case 后面接数字,可以写多个
package main //必须有一个main包 import "fmt" func main() { //支持一个初始化语句, 初始化语句和变量本身, 以分号分隔 switch num := 4; num { //switch后面写的是变量本身 case 1: fmt.Println("按下的是1楼") case 2: fmt.Println("按下的是2楼") case 3, 4, 5: fmt.Println("按下的是yyy楼") case 6: fmt.Println("按下的是4楼") default: fmt.Println("按下的是xxx楼") } }
#执行结果:
按下的是yyy楼
示例7:
package main import "fmt" func main() { score := 85 switch { case score > 90: //case后面可以放条件 fmt.Println("优秀") case score > 80: fmt.Println("良好") case score > 70: fmt.Println("一般") default: fmt.Println("其它") } }
#执行结果:
良好
转自:https://www.cnblogs.com/nulige/p/10202141.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。