这个for
Loop 循环执行一段代码指定的次数。
这个for
Loop 是 Go 中唯一可用的循环。
如果您想一遍又一遍地运行相同的代码,并且每次都使用不同的值,那么循环会很方便。
循环的每次执行称为迭代。
这个for
循环最多可以包含三个语句:
for
statement1; statement2; statement3 {
// code to be executed for each iteration
}
声明1初始化循环计数器值。
声明2对每个循环迭代进行评估。如果计算结果为 TRUE,则循环继续。如果计算结果为 FALSE,则循环结束。
声明3增加循环计数器值。
笔记:这些语句不需要作为循环参数出现。但是,它们需要以某种形式出现在代码中。
此示例将打印从 0 到 4 的数字:
package main
import ("fmt")
func main() {
for i:=0; i < 5; i++ {
fmt.Println(i)
}
}
结果:
0
1
2
3
4
此示例以十为单位数到 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
这个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
语句用于中断/终止循环执行。
当 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
通常与条件。
可以将一个循环放置在另一个循环内。
此处,"inner loop" 将在 "outer loop" 的每次迭代中执行一次:
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 {
// code to be executed for each iteration
}
本示例使用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
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!