case里面两个条件_Go语言条件语句之 switch 语句
点击上方蓝色 “铁匠学编程” 关注我,让我们一起学习!
switch语句会根据传入条件不同,选择不同的分支执代码进行执行,他可以代替多个 if else 子句,Go 语言的分支语句和 PHP 的类似,Go 不需要显示的通过break 进行退出。
package mainimport "fmt"func main() { score := 100 switch { case score >= 90: fmt.Println("Grade: A") case score >= 80 && score < 90: fmt.Println("Grade: B") case score >= 70 && score < 80: fmt.Println("Grade: C") case score >= 60 && score < 70: fmt.Println("Grade: D") default: fmt.Println("Grade: F") }}
在上面的程序中,switch 会将 score 与每个 case 语句进行从上到下的比较,并执行与选项匹配的第一个代码块进行执行。
注意:此处的 score 不能放到 switch 后面,否则会报错,只有在进行分支判断时候才可以
在选项列表中,不允许出现重复相等的条件判断,如下:
package mainimport "fmt"func main() { score := 100 switch { case score = 90: fmt.Println("Grade: A") case score = 90: ... default: fmt.Println("Grade: F") }}
上面的程序编译时会报错。
在Go语言中,我们可以用逗号分隔不同的分支条件来合并分支语句,如 case 90,100
,这里我们不能像PHP 那样通过多个相邻的 case 语句来合并相同的分支语句,如下:
package mainimport "fmt"func main() { switch score := 99; score { case score 90: // 此时被m默认为空语句直接退出 case score 95: fmt.Println("grade A") case score 80, 85: fmt.Println("grade B") default: fmt.Println("grade F") }}
上面的例子中我们都添加了默认情况,就是在所有的分支语句都不匹配的时候,将运行默认情况,他的位置并不一定在最后,任何地方都可以。
fallthrough
前面我们说到不能通过相邻的 case 语句来合并相同的分支语句,我们可以通过 逗号 分隔来进行执行多个条件来合并语句。Go 语言在执行完某一个条件分支之后会自动退出当前条件语句,如果还想继续执行后续的分支语句,可以通过 fallthrough 来继续执行后面的分支语句。如下:
package mainimport "fmt"func main() { score := 60 switch score { ... case 60: fallthrough case 65: fmt.Println("Grade: D") ... } }
此时,就相当于合并了 case 60 和case 65 两个分支语句。
Go语言 的 Reflect 会根据类型断言进行判断,后面分享 反射的时候再来说。
如果您看到了我的文章,欢迎留下意见和建议,指出不足。感谢!
加油!不仅自己~还有你~
case里面两个条件_Go语言条件语句之 switch 语句相关推荐
- c语言入门----详解分支语句(switch语句)
目录标题 前言 一.为什么会有switch语句 二.switch语句的基本形式 三.switch语句中的break 1.为什么会有break语句 2.break语句的使用 四.switch语句中的de ...
- matlab if语句多个执行举例,初学Matlab,有两个语句,if语句和switch语句,有两个例子哪位大神能帮我讲讲...
问题描述: 初学Matlab,有两个语句,if语句和switch语句,有两个例子哪位大神能帮我讲讲 if logical_expression statements elseif logical_ex ...
- 《C语言实战教学》:if语句和switch语句
前情提要 你好哇! 大家久等了,新的一期来了!怎么样?刚入门的有没有去看上一期的内容呢?是不是深深地感受到了C语言的魅力?还是感到恐惧呢?哈哈. 如果感觉到恐惧的话大可不必,跟着我学,我保证你能写出比 ...
- c语言switch中用ifelse,初学者求问:用if单分支选择语句替换switch语句?if.else呢...
菜鸟求问:用if单分支选择语句替换switch语句?if...else呢? 主要是关于default情况的处理,代码如下: /* Fig. 4.7: fig04_07.c Counting lette ...
- 1203.2——条件语句 之 switch语句
用 if else 语句在处理多分支的时候,分支太多就会显得不方便,且容易出现 if 和 else配对出现错误的情况.例如,输入一个整数,输出该整数对应的星期几的英文表示: #include < ...
- java怎么延迟执行语句_Go语言defer(延迟执行语句)
Go语言中关键字defer允许我们推迟到函数返回之前(或任意位置执行return语句之后)一刻才执行某个语句或函数(为什么要在返回之后才执行这些语句?因为return语句同样可以包含一些操作,而不是单 ...
- Go语言自学系列 | golang switch语句
视频来源:B站<golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- C语言学习笔记:switch语句、循环语句--while、for、getchar,eof概念(推荐MSDN查询函数概念等)
Switch语句:常用于多分支的情况 switch (整型表达式) { 语句项: } 其中,语句项是一些case语句,case可以放多个语句项: case 整型常量表达式: 语句: switch后面的 ...
- matlab中的case语句,MATLAB switch语句
本文概述 开关是另一种条件语句, 它执行多个语句组中的一个. 如果我们要根据一组预定义的规则测试相等性, 那么switch语句可以替代if语句. 句法 switch switch_expression ...
最新文章
- 《百面机器学习》---AI算法工程师求职必备“面经”
- 申请英国学校最晚什么时候考出雅思呢?
- 欧几里得空间——度量矩阵
- 一些影响SCI论文接收的技术性问题盘点
- qaxobject识别html,QT界面开发-QAxObject 读写excel(COM组件)-常用功能封装代码
- 【Android】Android网络编程概述
- 谁是谁的first-child
- hdu5720_贪心
- [react] 使用React的memo和forwardRef包装的组件为什么提示children类型不对?
- php 字符组成数组,php分割字符串并返回由字符串组成的数组的函数explode()
- ax3000 梅林_梅林甘蔗下种忙 古法红糖“熬”成致富新产业
- 个人电脑 公司电脑 代理_你们想要打造的树莓派电脑,刚发布了官方版:性能更强大,只卖70美元...
- 消息中间件学习总结(10)——Kafka、RabbitMQ、RocketMQ消息中间件的消息发送性能对比
- PostgreSQL 最佳实践 - 在线增量备份与任意时间点恢复
- 使用QGIS将文本坐标转换为矢量文件
- [jzoj 4528] [GDOI2019模拟2019.3.26] 要换换名字 (最大权闭合子图)
- Teststand 中用labview 读写station options属性
- android思维导图软件推荐,好用的思维导图软件,安卓思维导图软件哪个好
- 感冒会引发腺样体肥大吗?
- html制作调色板,JS实现系统调色板
热门文章
- SQL Server安全(8/11):数据加密(Data Encryption)
- iOS强制切换横屏、竖屏
- 第二个spring冲刺总结
- 云计算与分布式系统课程学习笔记(一)——云计算简介
- Leetcode--5. 最长回文子串(java)
- linux定时器错误使用,linux下定时器的使用
- linux du 文件大小排序,du命令 实现Linux 某个文件夹下的文件按大小排序
- C语言编写一个备份文件,2014年3月二级C语言上机题库备份.doc
- AttributeError: module 'tensorflow' has no attribute 'FIFOQueue'
- Halcon算子学习:create_surface_model