1.3.1多分支控制
Ø 基本语法:
对上面基本语法的说明
-
多分支的判断流程如下:
(1) 先判断条件表达式1 是否成立,如果为真,就执行代码块1
(2) 如果条件表达式1 如果为假,就去判断条件表达式2 是否成立, 如果条件表达式2 为真,就执行代码块2
(3) 依次类推
(4) 如果所有的条件表达式不成立,则执行 else 的语句块。
-
else 不是必须的。
-
多分支只能有一个执行入口。
Ø 看一个多分支的流程图(更加清晰)
1.3.2嵌套分支
Ø 基本介绍
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分 支外面的分支结构称为外层分支。
Ø 基本语法
应用案例1
参加百米运动会,如果用时8 秒以内进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。 输入成绩和性别。 代码:
//分析思路
//1.定义一个变量,来接收跑步使用秒数,float64
//2.定义一个变量,来接收性别string
//3.因为判断是嵌套的判断,因此我们会使用嵌套分支
var second float64
fmt.Println("请读秒数“)
fmt.scanln(&second)
if second <= 8 {
//进入决赛
va gender string
fmt.Println("请输入性别")
fmt.scanln(&gender)
if gender == "男"{
fmt.Println("进入决赛的男子组")
}else{
fmt.Println("进入决赛的女子组")
}
}else{
fmt.Println("out...")
}
1.4 switch 分支控制
1.4.1基本的介绍
- switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上到下逐一测
试,直到匹配为止。
2) 匹配项后面也不需要再加break
1.4.2基本语法
1.4.3switch 的流程图
对上图的说明和总结
- switch 的执行的流程是,先执行表达式,得到值,然后和case 的表达式进行比较,如果相等, 就匹配到,然后执行对应的case 的语句块,然后退出switch 控制。
- 如果switch 的表达式的值没有和任何的case 的表达式匹配成功,则执行default 的语句块。执行后退出switch 的控制.
- golang 的case 后的表达式可以有多个,使用 逗号 间隔.
- golang 中的case 语句块不需要写break , 因为默认会有,即在默认情况下,当程序执行完case 语 句块后,就直接退出该switch 控制结构。
1.4.5switch 的使用的注意事项和细节
- case/switch 后是一个表达式( 即:常量值、变量、一个有返回值的函数等都可以)
- case 后的各个表达式的值的数据类型,必须和 switch 的表达式数据类型一致
- case 后面可以带多个表达式,使用逗号间隔。比如 case 表达式1, 表达式2 ...
- case 后面的表达式如果是常量值(字面量),则要求不能重复
- case 后面不需要带break , 程序匹配到一个case 后就会执行对应的代码块,然后退出switch,如 果一个都匹配不到,则执行 default
- default 语句不是必须的.
- switch 后也可以不带表达式,类似 if --else 分支来使用。【案例演示】
- switch 后也可以直接声明/定义一个变量,分号结束,不推荐。 【案例演示】
- switch 穿透-fallthrough ,如果在case 语句块后增加fallthrough ,则会继续执行下一个case,也 叫switch 穿透
- Type Switch:switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际指向的 变量类型