循环
这 for
loop 按照指定的次数循环执行代码块。
这 for
loop 是 Go 中唯一可用的循环。
循环
如果您想一遍又一遍地运行相同的代码,并且每次都使用不同的值,那么循环会很方便。
每次循环的执行都称为 迭代.
这 for
循环最多可以包含三个语句:
句法
为了 语句1;语句2;语句3 {
// 每次迭代都要执行的代码
}
声明1 初始化循环计数器值。
声明2 每次循环迭代时进行评估。如果评估结果为 TRUE,则循环继续。如果评估结果为 FALSE,则循环结束。
声明3 增加循环计数器的值。
笔记: 这些语句不需要作为循环参数出现。但它们需要以某种形式出现在代码中。
for 循环示例
示例 1
此示例将打印从 0 到 4 的数字:
软件包 main
导入(“fmt”)
函数main(){
对于 i :=0; i < 5; i++ {
fmt.Println(i)
}
}
结果:
0
1
2
3
4
示例 1 解释
- i:=0; - 初始化循环计数器(i),并将起始值设置为 0
- i < 5; - 只要 i 小于 5,就继续循环
- i++ - 每次迭代将循环计数器的值增加 1
示例 2
此示例以十为单位数到 100:
软件包 main
导入(“fmt”)
函数main(){
对于 i := 0;i <= 100;i + = 10 {
fmt.Println(i)
}
}
结果:
0
10
20
30
40
50
60
70
80
90
100
示例 2 解释
- i:=0; - 初始化循环计数器(i),并将起始值设置为 0
- i <= 100; - 只要 i 小于或等于 100,就继续循环
- i+=10 - 每次迭代将循环计数器的值增加 10
continue 语句
这 continue
语句用于跳过循环中的一个或多个迭代。然后继续循环中的下一个迭代。
例子
此示例跳过值 3:
软件包 main
导入(“fmt”)
函数main(){
对于 i :=0; i < 5; i++ {
如果我 == 3 {
继续
}
fmt.Println(i)
}
}
结果:
0
1
2
4
break 语句
这 break
语句用于中断/终止循环执行。
例子
此示例在 i 等于 3 时跳出循环:
软件包 main
导入(“fmt”)
函数main(){
对于 i :=0; i < 5; i++ {
如果我 == 3 {
休息
}
fmt.Println(i)
}
}
结果:
0
1
2
笔记: continue
和break
通常与状况.
嵌套循环
可以将一个循环放在另一个循环内。
这里,“外循环”每迭代一次,“内循环”就会执行一次:
例子
软件包 main
导入(“fmt”)
函数main(){
adj := [2]string{“big”, “tasty”}
水果:= [3] string {“苹果”,“橙子”,“香蕉”}
对于 i :=0; i < len(adj); i++ {
对于 j :=0; j < len(水果); j++ {
fmt.Println(adj[i],fruits[j])
}
}
}
结果:
big apple
big orange
big banana
tasty apple
tasty orange
tasty banana
Range 关键字
这 range
关键字用于更轻松地迭代数组、切片或映射。它返回索引和值。
这 range
关键字的使用方式如下:
句法
为了 索引,值:=数组|片|地图 {
// 每次迭代都要执行的代码
}
例子
此示例使用 range
迭代一个数组并打印每个数组的索引和值(idx
存储索引,val
存储值):
软件包 main
导入(“fmt”)
函数main(){
水果:= [3] string {“苹果”,“橙子”,“香蕉”}
对于 idx,val := 范围水果{
fmt.Printf("%v\t%v\n", idx, val)
}
}
结果:
0 apple
1 orange
2 banana
提示: 如果仅显示值或索引,可以使用下划线 (_
).
例子
这里,我们要省略索引(idx
存储索引,val
存储值):
软件包 main
导入(“fmt”)
函数main(){
水果:= [3] string {“苹果”,“橙子”,“香蕉”}
对于 _,val := 范围水果{
fmt.Printf("%v\n", val)
}
}
结果:
apple
orange
banana
例子
这里,我们要省略值(idx
存储索引,val
存储值):
软件包 main
导入(“fmt”)
函数main(){
水果:= [3] string {“苹果”,“橙子”,“香蕉”}
对于 idx,_ := 范围水果{
fmt.Printf("%v\n", idx)
}
}
结果:
0
1
2