本人从事Go语言开发多年,目前主要从事云计算相关开发。
写本公众号的目的主要是对自己的过往知识进行梳理,也希望可以帮助大家学习~
后续会推出Go语言源码学习系列和web开发系列等,欢迎大家关注。
前面两篇文章对变量和常量进行了介绍,本篇我们来学习流程控制,那么什么是流程控制呢?
百度百科的定义:控制流程(也称为流程控制)是计算机运算领域的用语,意指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序
上面的定义有一点抽象,结合我们前两篇学习过的变量和常量,可以简单的理解为:变量和常量是数据的载体,承载了不同类型的数据,这些数据通过不同的运算符进行相应的运算,那么对计算的流程实现某种程度上的控制,便是本篇文章的主题——流程控制
在大概了解了流程控制的概念和作用后,对新概念 流程控制 的学习,会思考:
1. 该语言支持哪些流程控制类型?
2. 不同流程控制对应的控制语句?
思维逻辑图如下:
流程控制可以大致分为条件判断、循环控制和跳转控制三种类型,下面对相应的类型及控制语句逐一介绍
标准格式:
上面标准格式中,当表达式1为true时,则执行分支1;反之,则对表达式2进行判断,当表达式2为true时,则执行分支2,反之则执行分支3
注:在Golang中,对编码的格式有严格要求。在标准格式中,表达式1和表达式2后的左括号必须与表达式同行,否则程序将无法编译
执行结果:
switch判断语句在某种程度上与if判断语句是相通的,可以相互间进行转化
a. 格式:
Go语言中,以关键字switch开始,至上而下执行,直到找到匹配项
注: 1)switch语句至上而下执行,直到找到匹配项,当无匹配项时,则执行 default后的代码块
2)switch语句执行过程中,若找到匹配项,则自动跳出匹配过程
3)如若要求switch语句匹配后继续向下执行,则可在每个case后的代码的后面加fallthrough
执行结果:
解释:switch语句在从上到下的执行过程中,当 8/3 = 2 时,执行case 2后的代码块,执行完自动跳出
2)有fallthrough
执行结果:
解释:switch语句在从上到下的执行过程中,当 8/3 = 2 时,执行case 2后的代码块,但是由于有fall through语句,则会继续向下执行
Golang语言中,仅有一种循环控制语句:for循环,不存在while循环控制语句
a. 格式:
解释:循环体会在条件表达式为true的情况下一直执行,直到条件表达式为false时跳出循环
执行结果:
c. break语句:
break语句可以用来跳出当前for循环,也可以在语句中添加标签,退出标签对应的代码块逻辑
1)break跳出当前循环
执行结果:
2)break通过标签跳出
执行结果:
d. continue语句:
不同于break语句,continue 不是跳出循环,而是跳过当前循环执行下一次循环语句;而且,continue也可以接标签,跳到对应标签继续执行循环
1)continue不带标签
执行结果:
解释:当a==3的时候,continue关键字跳过当前循环,继续执行之后的循环
2)continue带标签
执行结果:
解释:当执行到continue语句时,均跳出到对应标签,并继续执行下一次循环
goto语句用于代码间的无条件跳转(不建议使用)
格式:goto 标签
示例:
执行结果:
到此关于Golang流程控制的分享就结束了~
此篇为Go语言基础系列分享第三篇,欢迎大家关注本公众号《Go开发与计算机技术》,Go语言基础系列学习不迷路。