在本教程中,您将学习如何使用 Golang 中的循环重复代码块执行。
for循环用于迭代序列(即切片、数组、映射或字符串)。
作为与C家族相关的语言,Golang也支持循环式控制结构。
Golang没有while循环,因为当与单个条件一起使用时,for 循环具有相同的目的。
传统for循环
当您事先知道脚本应运行多少次时,将使用for循环。
考虑以下示例,以三种不同的方式显示从1到10的数字。
package main
import "fmt"
func main() {
k := 1
for ; k <= 10; k++ {
fmt.Println(k)
}
k = 1
for k <= 10 {
fmt.Println(k)
k++
}
for k := 1; ; k++ {
fmt.Println(k)
if k == 10 {
break
}
}
}
用于范围声明
for语句支持一种附加形式,该形式使用关键字 range 循环访问计算结果为数组、切片、映射、字符串或通道的表达式
package main
import "fmt"
func main() {
// Example 1
strDict := map[string]string{"Japan": "Tokyo", "China": "Beijing", "Canada": "Ottawa"}
for index, element := range strDict {
fmt.Println("Index :", index, " Element :", element)
}
// Example 2
for key := range strDict {
fmt.Println(key)
}
// Example 3
for _, value := range strDict {
fmt.Println(value)
}
}
字符串上的范围循环
for循环遍历字符串的每个字符。
考虑以下示例,显示“Hello”五次。
package main
import "fmt"
func main() {
for range "Hello" {
fmt.Println("Hello")
}
}
无限循环
for循环运行无限次,除非我们无法中断。
考虑以下示例,多次显示“Hello”。
package main
import "fmt"
func main() {
i := 5
for {
fmt.Println("Hello")
if i == 10 {
break
}
i++
}
}