流程控制语句
if语句
在Go语言中,可以在if后面加上一段执行语句,执行语句也可以用作对if条件的判断。它的语法格式为:
if a := condition(); a == nil { //代码块 }
a赋值为condition()方法的结果,然后让a与nil进行判断,如果为true,那么会执行代码块中的代码,否则不执行,而且a的作用域只会在这条语句的范围内。
if···else语句
如果存在第二个分支,则可以在上面代码的基础上添加else语句以及另一个代码块。这个代码块中的代码只有在条件不满足时才会执行。if和else中的两个代码块是相互独立的分支,两者只可以执行其中的一个。语法格式为:
if condition { //代码块 } else { //代码块 }
switch语句
switch语句是用来进行多分支选择的语句,且Go语言的switch语句要比其他语言的更加通用,表达式的值不必为常量,甚至可以不为整数。它的语法格式为:
switch expression { case value1: //代码块 case value2: //代码块 default: //代码块 }
expression是一个表达式,value1、value2等是可能的取值,如果expression等于其中某个值,那么会执行相应的代码块,如果都不匹配,则执行default代码块。
在Go语言中,case和case之间都是独立的代码块,默认每个case后自带一个break,不需要用户自己编写。如果不需要每个case执行后自动截止,可以使用fallthrough来强制执行没有执行过的case代码。
d := 2 switch d { case 1: fmt.Print("星期一") case 2: fmt.Print("星期二") fallthrough case 3: fmt.Print("星期三") default: //代码块 }
输出的结果为 星期二星期三
for循环
for语句是用来进行循环的语句,它的语法格式:
for initialization; condition; post { //代码块 }
initialization是一个初始化语句,condition是一个循环条件,post是每次循环结束后要执行的语句。当condition为true时,会执行代码块中的代码,然后执行post语句,然后再次判断condition是否为true,以此类推,直到condition为false。
无限循环:
for { //代码块 }
如果表达式2省略,那么这就是一个无限循环,会一直执行代码块中的代码,除非使用break语句跳出循环。
break语句
Go语言中的break语句可以跳出循环或者switch的代码块,也可以在break后添加标签,用来退出某个标签指定的代码块。它的语法格式为:
for condition { //代码块 if condition2 { break } }
当满足condition2时,会跳出循环。
continue语句
continue语句用于跳过当前循环,进入下一次循环,且可以在for循环内使用,它的语法格式为:
for condition { //代码块 if condition2 { continue } }
当满足condition2时,会跳过当前循环,进入下一次循环。
goto语句
在Go语言中,可以通过goto来跳转标签,进行代码之间的跳转。它的语法格式为:
label: //代码块 goto label
其中label是一个标识符,可以是任意字符串。当执行goto语句时,会跳转到指定标签处执行代码。注意,使用goto语句容易导致代码的可读性和可维护性变差,应该尽量避免使用。