Go For 循环
for
循环可循环执行代码块指定的次数。
for
循环是 Go 中唯一可用的循环。
Go for 循环
如果你想一遍又一遍地运行相同的代码,并且每次都使用不同的值,那么循环是非常方便的。
循环的每次执行都称为一次迭代。
for
循环最多可以包含三个语句:
语法
for 语句 1; 语句 2; 语句 3 { // 每次迭代要执行的代码 }
语句 1 初始化循环计数器值。
语句 2 在每次循环迭代中进行评估。如果评估结果为 TRUE,则循环继续。如果评估结果为 FALSE,则循环结束。
语句 3 增加循环计数器值。
注意:这些语句不需要作为循环参数出现。但是,它们需要以某种形式存在于代码中。
for 循环实例
例子 1
此例将打印从 0 到 4 的数字:
package main import ("fmt") func main() { for i:=0; i < 5; i++ { fmt.Println(i) } }
结果:
0 1 2 3 4
例子解释:
i:=0;
- 初始化循环计数器(i),并将起始值设置为 0i < 5;
- 只要 i 小于 5,循环就继续i++
- 每次迭代增加循环计数器值 1
例子 2
此例以十为单位计数到 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
例子解释:
i:=0;
- 初始化循环计数器(i),并将起始值设置为 0i <= 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
通常与条件一起使用。
嵌套循环
可以将一个循环放置在另一个循环内。
在这里,“内部循环”将在“外部循环”的每次迭代中执行一次:
实例
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
关键字用于更容易地遍历数组、切片或映射。它返回索引和值。
range
关键字的用法如下:
语法
for index, value := array|slice|map { // 每次迭代要执行的代码 }
实例
此例使用 range
来遍历数组并打印索引和值(idx
存储索引,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
提示:要仅显示值或索引,您可以使用下划线 (_
) 省略其他输出。
实例
在这里,我们要省略索引(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