Go教程For 循环
Posted 玖五二七
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go教程For 循环相关的知识,希望对你有一定的参考价值。
循环以for开头,后面跟四段控制代码
- 初始化语句,用于初始化变量(可选)
- 条件表达式,用于决定何时中止
- 一个标志,用于循环后的每次迭代的步进(可选)
- 循环块
例1
package main
import "fmt"
func main()
// x := 1; 初始化变量
// x <5; 条件表达式,决定该循环何时中止
// 标志位代表 x++迭代步进
// 为循环块的开始 循环块结束
for x := 1; x < 5; x++
fmt.Printf("x = %d \\n", x)
变量初始化以后,由后面的条件表达式来保持循环运行,直到该表达式被满足,标志步用于改变初始变量的值步进值
例2
for x := 3; x > 0; x--
fmt.Printf("x = %d \\n", x)
如上面这段代码,x的初始值为3,标志位每次将x的步进减1,当x>0时循环终止。
标志位也支持 += 和 -=运算符,如 ++ — 即为 += 1 -=1
例3
下面的例子将去掉初始化和标志位,放在for以外的部分
y := 1
for x < 3
fmt.Printf("y = %d \\n", x)
y++
y = 3
for y > 0
fmt.Printf("y = %d \\n", x)
y--
以上的例子把x放在了for外面,会得到和前面相同的输出,但是它们的作用域不同
当初始化变量跟在for后面时,它的作用域范围仅在for循环控制块内即中
当初始化变量在for外层时,它的作用域范围在外面的块中即中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
如图所示,如果将x = 3写到17行,则IDE会提示错误,变量未声明
另外 for 循环不需要 () 来写表达式。也会发生错误
continue和break
Go提供了对for循环控制的的两个关键字
continue: 立即跳转到循环的下一次迭代,而不需要运行它之后的代码
break: 立即中断循环,不在等到满足for 表达式
for x := 1; x < 5; x++
fmt.Println("before continue y = ", y, "x = ", x)
continue
y++
fmt.Println("after continue y = ", y, "x = ", x)
输出结果如下
before continue y = 0 x = 1
before continue y = 0 x = 2
before continue y = 0 x = 3
before continue y = 0 x = 4
可以看到,continue之后x步进为1 y在continue下面,所以y++并没有执行
break例子
for x := 1; x < 5; x++
fmt.Println("before break y = ", y, "x = ", x)
break
y++
fmt.Println("after break y = ", y, "x = ", x)
上面的代码会输出
before break y = 0 x = 1
可以看到break后面的任何语句都没有执行
以上是关于Go教程For 循环的主要内容,如果未能解决你的问题,请参考以下文章