golang流程控制:if分支、switch分支和fallthrough switch穿透

网友投稿 256 2022-08-23

golang流程控制:if分支、switch分支和fallthrough switch穿透

引入

【1】流程控制的作用:

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。

【2】控制语句的分类:

控制语句分为三类:顺序、选择和循环。

“顺序结构”代表“先执行a,再执行b”的逻辑。

“条件判断结构”代表“如果…,则…”的逻辑。

“循环结构”代表“如果…,则再继续…”的逻辑。

三种流程控制语句就能表示所有的事情!不信,你可以试试拆分你遇到的各种事情。这三种基本逻辑结构是相互支撑的,它们共同构成了算法的基本结构,无论怎样复杂的逻辑结构,都可以通过它们来表达。所以任何一种高级语言都具备上述两种结构。

本章是大家真正进入编程界的“门票”。

【3】流程控制的流程:

if分支

单分支

【1】基本语法

if 条件表达式 { 逻辑代码}

当条件表达式为ture时,就会执行得的代码。 PS:条件表达式左右的()可以不写,也建议不写 PS:if和表达式中间,一定要有空格 PS:在Golang中,{}是必须有的,就算你只写一行代码。

【2】代码练习:

package mainimport "fmt"func main(){ //实现功能:如果口罩的库存小于30个,提示:库存不足: //var count int = 100 //单分支: // if count < 30 { // fmt.Println("对不起,口罩存量不足") // } //if后面表达式,返回结果一定是true或者false, //如果返回结果为true的话,那么{}中的代码就会执行 //如果返回结果为false的话,那么{}中的代码就不会执行 //if后面一定要有空格,和条件表达式分隔开来 //{}一定不能省略 //条件表达式左右的()是建议省略的 //在golang里,if后面可以并列的加入变量的定义: if count := 20;count < 30 { fmt.Println("对不起,口罩存量不足") }}

双分支

【1】基本语法

if 条件表达式 { 逻辑代码1} else { 逻辑代码2}

当条件表达式成立,即执行逻辑代码1,否则执行逻辑代码2。​​{}​​也是必须有的。

PS:下面的格式是错误的:

if 条件表达式 { 逻辑代码1}else { 逻辑代码2}

PS:空格加上,美观规范

【2】代码练习:

package mainimport "fmt"func main(){ //实现功能:如果口罩的库存小于30个,提示:库存不足,否则提示:库存充足 //定义口罩的数量: var count int = 70 if count < 30 { //这个条件表达式返回的是true的话,后面{}执行了 fmt.Println("库存不足") } else {//count >= 30 fmt.Println("库存充足") } //双分支一定会二选一走其中一个分支。 }

多分支

【1】基本语法

if 条件表达式1 { 逻辑代码1} else if 条件表达式2 { 逻辑代码2}.......else { 逻辑代码n}

【2】代码练习:

package mainimport "fmt"func main(){ //实现功能:根据给出的学生分数,判断学生的等级: // >=90 -----A // >=80 -----B // >=70 -----C // >=60 -----D // <60 -----E //方式1:利用if单分支实现: //定义一个学生的成绩: var score int = 18 //对学生的成绩进行判定: // if score >= 90 { // fmt.Println("您的成绩为A级别") // } // if score >= 80 && score < 90 { // fmt.Println("您的成绩为B级别") // } // if score >= 70 && score < 80 { // fmt.Println("您的成绩为C级别") // } // if score >= 60 && score < 70 { // fmt.Println("您的成绩为D级别") // } // if score < 60 { // fmt.Println("您的成绩为E级别") // } //上面方式1利用多个单分支拼凑出多个选择,多个选择是并列的,依次从上而下顺序执行,即使走了第一个分支,那么其它分支也是需要判断 //方式2:多分支:优点:如果已经走了一个分支了,那么下面的分支就不会再去判断执行了 // if score >= 90 { // fmt.Println("您的成绩为A级别") // } else if score >= 80 {//else隐藏:score < 90 // fmt.Println("您的成绩为B级别") // } else if score >= 70 {//score < 80 // fmt.Println("您的成绩为C级别") // } else if score >= 60 {//score < 70 // fmt.Println("您的成绩为D级别") // } else {//score < 60 // fmt.Println("您的成绩为E级别") // } //建议你保证else的存在,只有有了else才会真正 起到多选一 的效果 if score > 10 { fmt.Println("aaa") } else if score > 6{ fmt.Println("bbb") }}

switch分支

【1】基本语法:

switch 表达式 { case 值1,值2,.….: 语句块1 case 值3,值4,...: 语句块2 .... default: 语句块}

【2】代码练习:

package mainimport "fmt"func main(){ //实现功能:根据给出的学生分数,判断学生的等级: // >=90 -----A // >=80 -----B // >=70 -----C // >=60 -----D // <60 -----E //给出一个学生分数: var score int = 187 //根据分数判断等级: //switch后面是一个表达式,这个表达式的结果依次跟case进行比较,满足结果的话就执行冒号后面的代码。 //default是用来“兜底”的一个分支,其它case分支都不走的情况下就会走default分支 //default分支可以放在任意位置上,不一定非要放在最后。 switch score/10 { case 10 : fmt.Println("您的等级为A级") case 9 : fmt.Println("您的等级为A级") case 8 : fmt.Println("您的等级为B级") case 7 : fmt.Println("您的等级为C级") case 6 : fmt.Println("您的等级为D级") case 5 : fmt.Println("您的等级为E级") case 4 : fmt.Println("您的等级为E级") case 3 : fmt.Println("您的等级为E级") case 2 : fmt.Println("您的等级为E级") case 1 : fmt.Println("您的等级为E级") case 0 : fmt.Println("您的等级为E级") default: fmt.Println("您的成绩有误") } }

【3】注意事项:

(1)switch后是一个表达式(即:常量值、变量、一个有返回值的函数等都可以)

(2)case后面的值如果是常量值(字面量),则要求不能重复

(3)case后的各个值的数据类型,必须和 switch 的表达式数据类型一致

(4)case后面可以带多个值,使用逗号间隔。比如 case 值1,值2…

(5)case后面不需要带break

(6)default语句不是必须的,位置也是随意的。

(7)switch后也可以不带表达式,当做if分支来使用

(9)switch穿透,利用​​fallthrough​​​关键字,如果在case语句块后增加​​fallthrough​​ ,则会继续执行下一个case,也叫switch穿透。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:渗透测试-对新型内存马webshell的研究
下一篇:复盘:大卖50亿元,中海营销的攻守道!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~