Go 循环
The for
loop loops through a block of code a specified number of times.
The for
loop is the only loop available in Go.
Go for 循环
循环在您想要反复运行相同的代码时非常方便,每次都使用不同的值。
每次执行循环称为一次 **迭代**。
The for
loop can take up to three statements
语法
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 解释
- i:=0; - 初始化循环计数器 (i),并将起始值设置为 0
- i < 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
示例 2 解释
- i:=0; - 初始化循环计数器 (i),并将起始值设置为 0
- i <= 100; - 只要 i 小于或等于 100,就继续循环
- i+=10 - 在每次迭代中将循环计数器值增加 10
continue 语句
The continue
statement is used to skip one or more iterations in the loop. It then continues with the next iteration in the loop.
示例
此示例跳过值 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 语句
The break
statement is used to break/terminate the loop execution.
示例
此示例在 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 关键字
The range
keyword is used to more easily iterate through the elements of an array, slice or map. It returns both the index and the value.
The range
keyword is used like this
语法
for index, value := range 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