Go For 循环
for
循环在一段代码中循环指定的次数。
for
循环是 Go 中唯一可用的循环。
Go for 循环
如果您想一遍又一遍地运行相同的代码,每次使用不同的值,循环就很方便。
循环的每次执行称为一次迭代。
for
循环最多可以占用三个语句:
语法
for statement1; statement2; statement3 {
// 每次迭代要执行的代码
}
statement1初始化循环计数器值。
statement2针对每个循环迭代进行评估。 如果计算结果为 TRUE,则循环继续。 如果结果为 FALSE,则循环结束。
statement3增加循环计数器值。
注意:这些语句不需要作为循环参数出现。 但是,它们需要以某种形式存在于代码中。
for 循环示例
示例 1
这个例子将打印从 0 到 4 的数字:
package main
import ("fmt")
func main() {
for i:=0; i < 5; i++ {
fmt.Println(i)
}
}
结果:
0
1
2
3
4
示例 1 解释
- 我:=0; - 初始化循环计数器 (i),并将起始值设置为 0
- 我< 5个; - 只要 i 小于 5,就继续循环
- i++ - 每次迭代将循环计数器值增加 1
示例 2
这个例子从 100 到 100:
package main
import ("fmt")
func main() {
for i:=0; i <= 100; i+=10 {
fmt.Println(i)
}
}
结果:
0
10
20
30
40
50
60
70
80
90
100
示例 2 解释
- 我:=0; - 初始化循环计数器 (i),并将起始值设置为 0
- i <= 100; - 只要i小于等于100就继续循环
- i+=10 - 每次迭代将循环计数器值增加 10
continue 语句
continue
语句用于跳过循环中的一个或多个迭代。 然后它继续循环中的下一次迭代。
实例
这个例子跳过了 3 的值:
package main
import ("fmt")
func main() {
for i:=0; i < 5; i++ {
if i == 3 {
continue
}
fmt.Println(i)
}
}
结果:
0
1
2
4
break 语句
break
语句用于中断/终止循环执行。
实例
这个例子在 i 等于 3 时跳出循环:
package main
import ("fmt")
func main() {
for i:=0; i < 5; i++ {
if i == 3 {
break
}
fmt.Println(i)
}
}
结果:
0
1
2
注意: continue
和 break
通常与 conditions 一起使用
嵌套循环
可以将一个循环放在另一个循环中。
这里,"外循环"的每次迭代都会执行一次"内循环":
实例
package main
import ("fmt")
func main() {
adj := [2]string{"big", "tasty"}
fruits := [3]string{"apple", "orange", "banana"}
for i:=0; i < len(adj); i++ {
for j:=0; j < len(fruits); j++ {
fmt.Println(adj[i],fruits[j])
}
}
}
结果:
big apple
big orange
big banana
tasty apple
tasty orange
tasty banana
范围关键字
range
关键字用于更轻松地迭代数组、切片或映射。 它返回索引和值。
range
关键字是这样使用的:
语法
for index, value := array|slice|map {
// 每次迭代要执行的代码
}
实例
本示例使用 range
遍历数组并打印每个 (idx code> 存储索引,
val
存储值):
package main
import ("fmt")
func main() {
fruits := [3]string{"apple", "orange", "banana"}
for
idx, val := range fruits {
fmt.Printf("%v\t%v\n", idx, val)
}
}
结果:
0 apple
1 orange
2 banana
提示:要仅显示值或索引,您可以使用下划线 (_
) 省略其他输出。 p>
实例
这里,我们要省略索引(idx
存储索引,val
存储值) :
package main
import ("fmt")
func main() {
fruits := [3]string{"apple", "orange", "banana"}
for _,
val := range fruits {
fmt.Printf("%v\n", val)
}
}
结果:
apple
orange
banana
实例
这里,我们要省略值(idx
存储索引,val
存储值) :
package main
import ("fmt")
func main() {
fruits := [3]string{"apple", "orange", "banana"}
for idx, _ := range fruits {
fmt.Printf("%v\n", idx)
}
}
结果:
0
1
2