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
关键字。