本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。
下面我们了解一下关于golang流程控制语句的基本内容。
(相关资料图)
1、条件分支语句
和c语言类似,相关的条件语句如下表所示:
语句 | 描述 |
---|---|
if 语句 | if 语句 由一个布尔表达式后紧跟一个或多个语句组成。 |
if…else 语句 | if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行。 |
switch 语句 | switch 语句用于基于不同条件执行不同动作。 |
select 语句 | select 语句类似于 switch 语句,但是select会随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。 |
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */}
登录后复制
if-else语句if 布尔表达式 { /* 在布尔表达式为 true 时执行 */} else {/* 在布尔表达式为 false 时执行 */}
登录后复制
switch语句 其中的变量v
可以是任何类型,val1
和val2
可以是同类型的任意值,类型不局限为常量或者整数,或者最终结果为相同类型的表达式。switch v { case val1: ... case val2: ... default: ...}
登录后复制
select语句 select 是 Go 中的一个控制结构,类似于用于通信的 switch 语句。每个 case 必须是一个通信操作,要么是发送要么是接收。它将会随机执行一个可运行的 case。如果没有 case 可运行,它将阻塞,直到有 case 可运行。一个默认的子句应该总是可运行的。select { case communication clause : statement(s); case communication clause : statement(s); /* 你可以定义任意数量的 case */ default : /* 可选 */ statement(s);}
登录后复制
2、循环语句
2.1 循环处理语句
与多数语言不同的是,Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构,关键字 for 的基本使用方法与C语言和 C++ 中非常接近。
go中时使用for实现循环的,共有三种形式:
语法 | |
---|---|
和c语言中的for相同 | for init; condition; post {} |
和c语言中的while相同 | for condition{} |
和c语言中的for(;;) 相同 | for{} |
除此以外,for循环还可以直接使用range对slice、map、数组以及字符串等进行迭代循环,格式如下:
for key, value := range oldmap {newmap[key] = value}
登录后复制
2.2 循环控制语句
控制语句 | 详解 |
---|---|
break | 中断跳出循环或者switch语句 |
continue | 跳过当前循环的剩余语句,然后继续下一轮循环 |
goto语句 | 将控制转移到被标记的语句 |
1、break
break主要用于循环语句跳出循环,和c语言中的使用方式是相同的。且在多重循环的时候还可以使用label标出想要break的循环。 实例代码如下:
a := 0for a<5 {fmt.Printf("%d\n", a)a++if a==2 {break;}}/* output012*/
登录后复制
2、continue
Go 语言的 continue 语句 有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环执行下一次循环语句。在多重循环中,可以用标号 label 标出想 continue 的循环。 实例代码如下:
// 不使用标记 fmt.Println("---- continue ---- ") for i := 1; i <= 3; i++ { fmt.Printf("i: %d\n", i) for i2 := 11; i2 <= 13; i2++ { fmt.Printf("i2: %d\n", i2) continue } }/* outputi: 1i2: 11i2: 12i2: 13i: 2i2: 11i2: 12i2: 13i: 3i2: 11i2: 12i2: 13*/ // 使用标记 fmt.Println("---- continue label ----") re: for i := 1; i <= 3; i++ { fmt.Printf("i: %d", i) for i2 := 11; i2 <= 13; i2++ { fmt.Printf("i2: %d\n", i2) continue re } }/* outputi: 1i2: 11i: 2i2: 11i: 3i2: 11*/
登录后复制
3、goto
goto语句主要是无条件转移到过程中指定的行。goto语句通常和条件语句配合使用,可用来实现条件转移、构成循环以及跳出循环体等功能。但是并不主张使用goto语句,以免造成程序流程混乱。 示例代码如下:
var a int = 0LOOP: for a<5 {if a == 2 {a = a+1goto LOOP}fmt.Printf("%d\n", a)a++}/*output:01234*/
登录后复制
以上代码中的LOOP就是一个标签,当运行到goto语句的时候,此时执行流就会跳转到LOOP标志的哪一行上。
【相关推荐:Go视频教程、编程教学】
以上就是golang流程控制语句有哪些的详细内容,更多请关注php中文网其它相关文章!