Go语言中的流程控制语句

2023-10-16 12:21:01 浏览数 (2)

流程控制语句

if语句

在Go语言中,可以在if后面加上一段执行语句,执行语句也可以用作对if条件的判断。它的语法格式为:

代码语言:javascript复制
if a := condition(); a == nil {
    //代码块
}

a赋值为condition()方法的结果,然后让a与nil进行判断,如果为true,那么会执行代码块中的代码,否则不执行,而且a的作用域只会在这条语句的范围内。

if···else语句

如果存在第二个分支,则可以在上面代码的基础上添加else语句以及另一个代码块。这个代码块中的代码只有在条件不满足时才会执行。if和else中的两个代码块是相互独立的分支,两者只可以执行其中的一个。语法格式为:

代码语言:javascript复制
if condition {
    //代码块
} else {
    //代码块
}

switch语句

switch语句是用来进行多分支选择的语句,且Go语言的switch语句要比其他语言的更加通用,表达式的值不必为常量,甚至可以不为整数。它的语法格式为:

代码语言:javascript复制
switch expression {
    case value1:
        //代码块
    case value2:
        //代码块
    default:
        //代码块
}

expression是一个表达式,value1、value2等是可能的取值,如果expression等于其中某个值,那么会执行相应的代码块,如果都不匹配,则执行default代码块。

在Go语言中,case和case之间都是独立的代码块,默认每个case后自带一个break,不需要用户自己编写。如果不需要每个case执行后自动截止,可以使用fallthrough来强制执行没有执行过的case代码。

代码语言:javascript复制
d := 2
switch d {
    case 1:
        fmt.Print("星期一")
    case 2:
        fmt.Print("星期二")
        fallthrough
    case 3:
        fmt.Print("星期三")
    default:
        //代码块
}

输出的结果为 星期二星期三

for循环

for语句是用来进行循环的语句,它的语法格式:

代码语言:javascript复制
for initialization; condition; post {
    //代码块
}

initialization是一个初始化语句,condition是一个循环条件,post是每次循环结束后要执行的语句。当condition为true时,会执行代码块中的代码,然后执行post语句,然后再次判断condition是否为true,以此类推,直到condition为false。

无限循环:

代码语言:javascript复制
for {
    //代码块
}

如果表达式2省略,那么这就是一个无限循环,会一直执行代码块中的代码,除非使用break语句跳出循环。

break语句

Go语言中的break语句可以跳出循环或者switch的代码块,也可以在break后添加标签,用来退出某个标签指定的代码块。它的语法格式为:

代码语言:javascript复制
for condition {
    //代码块
    if condition2 {
        break
    }
}

当满足condition2时,会跳出循环。

continue语句

continue语句用于跳过当前循环,进入下一次循环,且可以在for循环内使用,它的语法格式为:

代码语言:javascript复制
for condition {
    //代码块
    if condition2 {
        continue
    }
}

当满足condition2时,会跳过当前循环,进入下一次循环。

goto语句

在Go语言中,可以通过goto来跳转标签,进行代码之间的跳转。它的语法格式为:

代码语言:javascript复制
label:
//代码块
goto label

其中label是一个标识符,可以是任意字符串。当执行goto语句时,会跳转到指定标签处执行代码。注意,使用goto语句容易导致代码的可读性和可维护性变差,应该尽量避免使用。

0 人点赞