现实时间中,我们如果想去购物,可以选择网上或者线下去购物,甚至说,要购买的物品都有许多选择,选价格便宜的,选质量好的,选不用运费等等

那么在计算机语言中,我们要怎么实现现实中,这些选择呢?

Go语言支持了几种条件判断语句,if 语句和switch语句

if 语句

单分支结构

格式

if 条件表达式 {代码块
}

代码示例

package mainimport "fmt"func main(){var shopping int = 1 //网上购物的编号为1,线下购物的编号为2//当 shopping == 1的时候,选择网上购物if shopping == 1 {fmt.Println("选择网上购物,此时shopping的值为:", shopping)}//当 shopping == 2的时候,选择线下购物if shopping == 2 {fmt.Println("选择线下购物,此时shopping的值为:", shopping)}
}

输出为:选择网上购物,此时shopping的值为: 1

在这里,我们定义了一个变量 shopping,并赋值为1,这时候运行代码,代码会先判断第一个 if 语句,也就是 shopping == 1 这个条件表达式所在的 if 条件句,由于符合条件,所以进入代码块中;执行完代码块后,程序会继续向下执行,这时候会遇到第二个 if 语句,然后判断 shopping是否等于2,由于shopping等于1,不符合条件,所以不进入代码块中,所以不输出,至此程序执行结束。

注意:如果第二个 if 语句的条件表达式也符合 shopping == 1的话,会进入if 代码块中执行代码块的内容

执行过程

多分支结构

格式

if 条件表达式 {代码块
}else {代码块
}--------------------------------------if 条件表达式{代码块
}else if 条件表达式{代码块
}else{代码块
}

代码示例

package mainimport "fmt"func main(){var shopping int = 2 //网上购物的编号为1,其它编号都是线下购物//当 shopping == 1的时候,选择网上购物//当 shopping != 1的时候,选择线下购物if shopping == 1 {fmt.Println("选择网上购物,此时shopping的值为:", shopping)}else{fmt.Println("选择线下购物,此时shopping的值为:", shopping)}}

输出:选择线下购物,此时shopping的值为: 2

代码执行到 if 语句这里后,判断条件是否成立,如果成立,执行代码块的代码;如果不成立,执行 else 语句中的内容,也就是说,除了 shopping == 1 这个条件成立会执行 "选择网上购物"外,其它数字的输入,都会走到 else语句

package mainimport "fmt"func main(){var shopping int = 3 //网上购物的编号为1,线下购物的编号为2,其它的都不去购物//当 shopping == 1的时候,选择网上购物//当 shopping == 2的时候,选择线下购物if shopping == 1 {fmt.Println("选择网上购物,此时shopping的值为:", shopping)}else if shopping == 2{fmt.Println("选择线下购物,此时shopping的值为:", shopping)}else {fmt.Println("不去购物了,在家躺尸比较舒服")}}

输出:不去购物了,在家躺尸比较舒服

上面的语句,较 if...else 语句而言,多了 else if 语句,可以让程序多个选择。当执行到第一个 if 语句 shopping == 1的,由于条件不成立,继续向下执行,执行到 else if 语句,这个语句的条件是 shopping == 2,也不成立,执行 else 语句中的代码

如果有多个 else if 语句,那么只要前面的不匹配,就会执行下面的 else if,直到没有 else if为止,那么久执行 else

执行过程

第一份代码的图

第二份代码的图

嵌套分支结构

代码示例

package mainimport "fmt"func main(){//声明三个个变量,分别代表了数学成绩,英语成绩还有年龄var mathScore int = 88var englishScore int = 90var age int = 18//只要有一个科目的成绩在90分以上就评为优秀,这时候要是年龄小于等于18,那么可以多个奖状if mathScore >= 90 || englishScore >= 90{fmt.Println("优秀")if age <= 18 {fmt.Println("奖励奖状一张")}} else {fmt.Println("干什么吃的,没一科考到90+")}
}

输出:优秀(此处在打印的时候,是有换行的)奖励奖状一张

嵌套分支,其实跟其它分支是差不多的,它只是在分支里面,还嵌套了条件判断语句

switch 语句

Go中的 switch语句,跟其它语句还是略有些区别的:

  • 执行完 case 后,不用调用 break关键字,来让程序跳出 switch 语句,因为在每个case后面,都会默认加一个 break关键字
  • 要想匹配完一个语句后,继续执行下面的case,只要使用关键字 fallthrough即可,无论下面的case是否匹配上,都会执行 fallthrough语句下面的 case中的内容
  • case 后面的类型,要跟 switch中的类型匹配,下面代码的 expr的类型要保持一致

switch expr { case expr }

  • default 在这里可有可无
  • switch 后面可以是任意类型

代码示例

不带 fallthrough关键字

package mainimport "fmt"func main() {//定义一个变量,来代表成绩var score int64 = 90switch {case  score >= 90:fmt.Println("优秀")case  score >= 80 && score < 90:fmt.Println("良好")default:fmt.Println("一般")}
}

输出结果:优秀

带 fallthrough关键字

package mainimport "fmt"func main() {//定义一个变量,来代表成绩var score int64 = 99switch {case score > 90:fmt .Println("优秀")fallthroughcase score >= 80 && score < 90:fmt.Println("良好")default:fmt.Println("一般")}
}

输出:优秀(此处在打印的时候,是有换行的)良好

是不是很奇怪,明明 fallthrough后面的case条件明明不匹配,但他就是执行了,可能是因为名字中有 through这个词的原因吧,表示穿过(这个是我瞎说的,不要当真)

补充

if 和 switch语句后面可以带个初始化语句,如下

package mainimport "fmt"func main() {switch score := 99;{case score >= 90:fmt .Println("优秀")fallthroughcase score >= 80 && score < 90:fmt.Println("良好")default:fmt.Println("一般")}
}

分号后面,才是下面要 switch后面要跟的类型,而 if语句中的初始化也是跟这个一样

c#switch语句判断成绩_Go的条件判断语句相关推荐

  1. 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)

    求1+2+3+-+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C) 文章目录 求1+2+3+...+n,要求不能使用乘除法.for ...

  2. 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

    求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). //利用构造函数求解 /*class Temp{ pub ...

  3. 【OJ - 基础数学】求1+2+3+...+n(不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句)

    文章目录 OJ - 求1+2+3+...+n 解题思路 OJ - 求1+2+3+-+n 题目难度:中等 OJ链接:求1+2+3+-+n__牛客网 (nowcoder.com) 题目描述: 求1+2+3 ...

  4. 基于R利用if语句套嵌进行多重条件判断

    我们知道在R中if语句可以帮助我们进行条件判断,常用于修改变量,做出条件选择等等,对于条件为二分类的判断非常有帮助, 比如我们想判断学生的成绩是否及格,60分以上算是及格 ifelse(n>60 ...

  5. 支持多分支语句吗_Go的条件判断语句

    现实时间中,我们如果想去购物,可以选择网上或者线下去购物,甚至说,要购买的物品都有许多选择,选价格便宜的,选质量好的,选不用运费等等 那么在计算机语言中,我们要怎么实现现实中,这些选择呢? Go语言支 ...

  6. if js 判断成绩等级_JS 条件语句

    在编写 js 的过程中,我们肯定会用到条件语句. 常用的 if...else 大部分的条件语句都是用 if...else,适用于"非黑即白"的情况: 场景一:是否登录 根据不同的登 ...

  7. 比Switch...Case更加优雅的多条件判断写法

    前言 前几天,本人负责编写网站上线的环境判断功能,其中涉及到大量多条件判断的code.对于多条件判断写法,大部分程序员都是采用if...else if...else或者switch...case的写法 ...

  8. python if判断字符串_python之条件判断、循环和字符串格式化

    1. python的条件判断:if和else 在条件判断中可以使用算数运算符 等于:== 不等于:!= 大于:> 小于:< 大于等于:>= 小于等于:<= 示例1: usern ...

  9. linux grep egrep fgrep bash条件判断 bash测试 if 条件判断

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

最新文章

  1. 机器学习入门学习笔记:(2.4)线性判别分析理论推导
  2. 画箱线图_箱线图的N种画法
  3. hbuilder打包ios_ios开发证书的作用及申请步骤
  4. Zepto.js 源码解析(emoji版)
  5. K近邻算法的kd树实现
  6. cpg数据库处理_找到未提取的pdf
  7. OpenCasCade标注显示类(独立)
  8. java的class文件反编译
  9. SPSS 25.0 软件安装教程
  10. 【虚拟主机】服务器搭建
  11. windows出于安全原因某些设置由系统管理员管理解决方法
  12. 10-调用门(有参)实验
  13. 如何快速去除图片上的水印?去除图片水印怎么做?
  14. 计算机硬件报警声音,有关电脑发出警报声的.
  15. 计算机科学与技术创新实验班是什么意思,计算机科学与技术(创新实验班)专业介绍...
  16. 淘宝联盟代码html无法显示,阿里妈妈的iconfont的引用问题
  17. 采购策略中的合同支付类型
  18. dim层-首日和每日数据装载脚本
  19. 0002 真的吗,700元的电脑可以学会编程?
  20. R语言分层抽样(strata函数)

热门文章

  1. Nginx+keepalived 实现高可用,防盗链及动静分离配置
  2. 千亿级携程酒店AWS实践
  3. 33张图剖析ReentrantReadWriteLock源码
  4. 谈谈中台架构之交易中台
  5. 微服务的简介和技术栈
  6. 一线程序员年薪90万,不敢结婚不敢要孩子,被父母怼:堂弟月薪4千二胎都有了,家里最挫的就是我!...
  7. 高性能 Java 应用层网关设计实践
  8. 无论什么级别程序员,“微服务架构”都是你必须过的坎!
  9. Angular 变化检测详解
  10. 超全大厂数据结构面试