Golang for 关键字
最后修改于 2025 年 5 月 7 日
本教程解释了如何在 Go 中使用 for 关键字。我们将通过 Go 编程中迭代的实际示例来介绍循环基础知识。
for 语句是 Go 中唯一的循环结构。它可以用于三种形式:传统 for 循环、while 循环和无限循环。
在 Go 中,for 提供了您所需的所有循环功能。它用途广泛,可以迭代集合、实现基于条件的循环以及创建无限循环。
基本 for 循环
传统的 for 循环具有初始化、条件和后置语句。此示例演示了从 0 计数到 4。
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println(i)
}
}
循环将 i 初始化为 0,在 i < 5 时运行,并在每次迭代后递增 i。这是最常见的形式。
类似 while 的 for 循环
Go 的 while 循环只是一个只有条件的 for 循环。此示例展示了如何实现 while 循环的行为。
package main
import "fmt"
func main() {
count := 0
for count < 5 {
fmt.Println(count)
count++
}
}
只要 count < 5,循环就会继续。计数器必须在循环体内部管理,类似于传统的 while 循环。
无限 for 循环
无限循环省略了所有三个语句。此示例展示了如何创建无限循环并从中跳出。
package main
import "fmt"
func main() {
i := 0
for {
fmt.Println(i)
i++
if i > 4 {
break
}
}
}
循环将无限运行,直到满足 break 条件。此模式对于服务器或长时间运行的进程很有用。
For-range 循环
range 形式迭代切片、数组、映射、字符串或通道。此示例演示了迭代切片。
package main
import "fmt"
func main() {
fruits := []string{"apple", "banana", "cherry"}
for index, fruit := range fruits {
fmt.Printf("%d: %s\n", index, fruit)
}
}
range 会为每个元素返回索引和值。如果只需要值,可以使用 _ 来省略索引。
嵌套 for 循环
For 循环可以嵌套以处理多维数据结构。此示例显示了一个乘法表。
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
for j := 1; j <= 3; j++ {
fmt.Printf("%d * %d = %d\t", i, j, i*j)
}
fmt.Println()
}
}
外循环控制行,内循环处理列。外循环的每次迭代都会触发内循环的完整周期。
带 continue 的 For 循环
continue 语句会跳到下一个迭代。此示例跳过了循环中的偶数。
package main
import "fmt"
func main() {
for i := 0; i < 10; i++ {
if i%2 == 0 {
continue
}
fmt.Println(i)
}
}
当 i 为偶数时,continue 会跳过打印语句。仅打印 0 到 9 之间的奇数。
带标签的 for 循环
标签允许从嵌套结构中 break 或 continue 外层循环。此示例演示了从外层循环 break。
package main
import "fmt"
func main() {
OuterLoop:
for i := 0; i < 3; i++ {
for j := 0; j < 3; j++ {
fmt.Printf("i=%d, j=%d\n", i, j)
if i == 1 && j == 1 {
break OuterLoop
}
}
}
}
标签 OuterLoop: 标记外层循环。当满足条件时,break 语句会退出两个循环。
来源
本教程通过不同循环场景和模式的实际示例,介绍了 Go 中的 for 关键字。