4.2 Go switch
4.2 Go switch
switch语句用于基于不同条件执行不同动作,每一个case分支唯一,自上而下逐一测试,直到匹配结束,默认自动终止,不需要break。
2. switch基本语法
- switch后面跟着表达式(变量、常量、有返回值函数等)
- case后面的表达式必须和switch表达式数据类型一致
- case后可以有多个表达式
- case后面表达式常量不得重复
package main import "fmt" func main() {
var week int
fmt.Println("请输入星期几:")
fmt.Scanln(&week) switch week {
case 1:
fmt.Println("星期一,上班!!")
case 2, 3, 4, 5:
fmt.Println("星期二到星期五,你还得上班!!")
case 6:
fmt.Println("周六你就想休息?加班!!")
case 7:
fmt.Println("老子迟早要辞职,终于能休息了!!")
default:
fmt.Println("输入错误你就必须得上班!!")
}
}
- switch替代if-else使用
package main import "fmt" func main() {
var score int
fmt.Println("请录入你的成绩:>")
fmt.Scanln(&score)
switch {
case score > 90:
fmt.Println("成绩优秀")
case score >= 70:
fmt.Println("及格中等")
case score >= 60:
fmt.Println("勉强及格了")
default:
fmt.Println("恭喜你,考试不及格")
}
}
- switch之穿透
fallthrough,在case语句块后添加fallthrough会继续执行下一个case
package main import "fmt" func main() {
var score int
fmt.Println("请录入你的成绩:>")
fmt.Scanln(&score)
switch {
case score > 90:
fmt.Println("成绩优秀")
fallthrough
case score >= 70:
fmt.Println("及格中等")
case score >= 60:
fmt.Println("勉强及格了")
default:
fmt.Println("恭喜你,考试不及格")
}
}
7.switch还可以用于判断interface变量实际存储的变量类型。
package main import "fmt" func main() {
var x interface{} //x是空接口类型,可以接收任意类型
var y = 19.9
x = y
switch i := x.(type) {
case nil:
fmt.Printf("x的类型是%T\n", i)
case float64:
fmt.Printf("x的类型是%T\n", i)
default:
fmt.Println("未知类型")
}
}
2.1. switch和if
判断的具体数值不多,符合整数、浮点数、字符、字符串等类型,建议用switch。
对bool类型的判断,用if,if可控范围更广。
4.2 Go switch的更多相关文章
- Partition:分区切换(Switch)
在SQL Server中,对超级大表做数据归档,使用select和delete命令是十分耗费CPU时间和Disk空间的,SQL Server必须记录相应数量的事务日志,而使用switch操作归档分区表 ...
- java中if和switch哪个效率快
首先要看一个问题,if 语句适用范围比较广,只要是 boolean 表达式都可以用 if 判断:而 switch 只能对基本类型进行数值比较.两者的可比性就仅限在两个基本类型比较的范围内.说到基本类型 ...
- [开源]QuickSwitchSVNClient,快速完成SVN Switch的工具
在实际的开发中,我们一般使用SVN工具进行源代码的管理.在实际的产品开发中,根据项目的一些定制要求,往往需要对某一些代码的修改,但是又不想影响主要的开发,这个时候需要对当前的主分支做一些分支处理(br ...
- C#中,switch case语句中多个值匹配一个代码块的写法
switch (num) { case 1: Response.Write("1"); break; case 2: case 3: Response.Write("2| ...
- Android Studio快捷键switch case 轻松转换为if else
Android Studio快捷键switch case 轻松转换为if else 今天碰到的问题,没有找到资料,后面找到了方法,这个记下来,转载请注明出处:http://www.cnblogs.co ...
- 代码的坏味道(6)——Switch声明(Switch Statements)
坏味道--Switch声明(Switch Statements) 特征 你有一个复杂的 switch 语句或 if 序列语句. 问题原因 面向对象程序的一个最明显特征就是:少用 switch 和 c ...
- java中的switch case
switch-case语句格式如下 switch(变量){ case 变量值1: //; break; case 变量值2: //...; break; ... case default: //... ...
- switch语句的妙用
switch语句的普通用法很简单,如下: var a = 3; switch (a) { case 1: console.log(a); break; case 2: case 3: console. ...
- JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)
switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...
- JavaScript (If...Else和Switch和循环遍历) 语句以及常用消息框
If...Else 语句 JavaScript中if...else语句和Java中的语法和使用方法是一样的. 只是在JavaScript中要使用小写字母.使用大写的 IF 会出错! 至于if...el ...
随机推荐
- 使用宝塔面板部署tp5网站
来源:https://www.cnblogs.com/e0yu/p/9102902.html 遇到一个问题,就是当thinkphp5部署在宝塔面板上,会出现这个问题: 参考解决办法: http://w ...
- Omnicore RPC API中文文档
2019独角兽企业重金招聘Python工程师标准>>> OmniCore是比特币核心的一个分支,它在比特币协议之上实现了一个新的Omni协议层,用于代币发行.众售等应用,USDT就是 ...
- 详解如何使用gulp实现项目在浏览器中的自动刷新
情况描述: 我们很容易遇到这样一种情况: 我们并不是一开始就规划好了整个项目,比如可能接手别人的项目或者工程已经手动创建好了,现在要想利用gulp来实现浏览器自动刷新,那么如何做呢? 其实非常简单,本 ...
- CC视频CTO栗伟:CDN系统架构及CC视频应用实践
2017 年 11 月9日,CC视频获2.08 亿元C轮融资. EGO 北京分会会员.CC视频CTO栗伟获邀作为 EGO 线上分享第三季嘉宾,与大家交流了CDN系统架构及CC 视频的应用实践. \\ ...
- TensorRT入门
本文转载于:子棐之GPGPU 的 TensorRT系列入门篇 学习一下加深印象 Why TensorRT 训练对于深度学习来说是为了获得一个性能优异的模型,其主要的关注点在与模型的准确度.精度等指标. ...
- P5522 [yLOI2019] 棠梨煎雪
updata on 2020.3.19 今天把博客从洛谷往博客园搬,图炸了 其实早就发现了,懒得管 那图其实就是一个用dev自带的调试功能调试时,RE了的报错 当时觉得很奇怪看不出是啥,现在再看已经觉 ...
- 教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了
一:背景 1. 讲故事 前几天公众号里有位兄弟看了几篇文章之后,也准备用windbg试试看,结果这一配就花了好几天,(づ╥﹏╥)づ,我想也有很多跃跃欲试的朋友在配置的时候肯定会遇到这样和那样的问题,所 ...
- 聚合类型与POD类型
Lippman在<深度探索C++对象模型>的前言中写道: I have heard a number of people over the years voice opinions sim ...
- 201771030129-张琳 实验一软件工程准备—<阅读书之后的三个疑问>
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE/ 本次作业要求链接 https://www.cnblogs.com/nwnu ...
- 51单片机putchar函数的说明
原文排版远些乱,整理了一下. #include <reg51.h> #define XON 0x11 /*串口流控制符 启动*/ #define XOFF 0x13 /*串口流控制符 中断 ...