1.1.5 流程控制语句
一、if...else(分支结构)
if...else(分支结构)if是用于测试某个测试条件(布尔型或逻辑型)的语句为代码可读性,不建议多
if...else组合使用注意:
关键字
if和else之后的左大括号{必须和关键字在同一行如果使用了
if...else结构,前段代码的右大括号}必须和if...else关键字在同一行
二、for循环
for循环Go语言的
for循环有三种:个C的
for一样:for init; condition; post{}init:一般为赋值表达式,给控制变量赋初始值condition:关系表达式或逻辑表达式,循环控制条件post:一般为赋值表达式,给控制变量增量或减量和C的
while一样for condition {}condition:关系表达式或逻辑表达式,循环控制条件和C的
for(;;)一样for {}
for语句执行过程如下先对表达式
for init; condition; post{}赋初始值判断赋值表达式
init是否满足给定条件,若值为真,满足循环条件,则执行循环体内的语句,然后执行post,进入第二次循环,再判断condition;如果condition值为假,不满足条件,就终止for循环,执行循环体外语句
注意:
左大括号
{必须与for处于同一行Go语言中的
for循环和C语言一样,都允许在循环条件中定义和初始化变量。唯一区别:Go语言不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量Go语言的
for循环同样支持使用continue和break来控制循环,但它提供了一个更高级的break,可以选择中断哪一个循环
在
for循环中,如果循环被break、goto、return、panic等语句强制退出,则之后的语句不会被执行
三、for...range语句
for...range语句for...range循环结构是Go语言特有的一种迭代结构,可以遍历数组、切片、字符串、map及通道(channel)for...range循环结构的一般形式如下:
四、switch...case语句
switch...case语句Go语言的
switch...case语句比C语言的更加通用,表达式的值不必为常量,甚至不必为整数。case按照从上往下的顺序进行求值,直找到匹配的项。可以将多个if...else语句改写成switch...case语句Go语言改进了
switch...case的语法设计:case与case之间是独立的代码块,不需要通过break语句跳出当前case代码块以避免执行到下一行Go语言还支持一些新写法,比如一分支多值、分支表达式
一分支多值:即多个
case分支放在一块,举个例子:结果:good name
注意:一分支多值
case表达式使用逗号分割分支表达式:
case语句后既可以是常量,也可以和if一样添加表达式,举个例子:注意:这种情况时,
switch后面不要再需要加判断变量
五、goto语句
goto语句在Go语言中,可通过
goto语句跳转标签,进行代码间的无条件跳转goto语句在快速跳出循环、避免重复退出方面也有一定的帮助示例如下:
六、break语句
break语句Go语言中的
break语句可以结束for、switch和select的代码块还可以在
break语句后面添加标签,表示退出某个标签对应的代码块,添加的标签必须定义在对应的for、switch和select得代码块上结果:
七、continue语句
continue语句Go语言中
continue语句可以结当前循环,开始下一次循环的迭代过程continue仅限在for循环内使用在
continue语句后添加标签时,表示开始标签对应的循环结果:
Last updated