Go 循环语句
Go 语言中只有一种循环结构:for 语句,但它可以表现出 while 和 do-while 语句的功能。
for 循环(基本用法)
Go 语言的 for 语句类似于 C 语言的 for 语句,格式如下:
for 初始化语句; 条件表达式; 迭代语句 { // 循环体}
示例 1:标准 for 循环
package main import "fmt" func main() { for index := 0; index < 5; index++ { fmt.Println("index =", index) } }
运行结果:
i = 0 i = 1 i = 2 i = 3 i = 4
省略初始化语句
初始化语句可以省略,但 ; 仍然要保留:
package main import "fmt" func main() { index := 0 for ; index < 5; index++ { fmt.Println("index =", index) } }
省略迭代语句
如果迭代语句在循环体内执行,可以省略:
package main import "fmt" func main() { index := 0 for index < 5 { fmt.Println("index =", index) index++ } }
无限循环(Go 版 while(true))
Go 没有 while 关键字,但 for 可以作为 while 使用:
for { // 无限循环 }
使用示例
package main import "fmt" func main() { index := 0 for { if index >= 5 { break // 终止循环 } fmt.Println("index =", index) index++ } }
for range(遍历数组、切片、map、字符串)
Go 使用 for range 遍历集合类型。
使用示例:
package main import "fmt" func main() { items := []int{10, 20, 30, 40} for index, value := range items { fmt.Printf("索引 %d: 值 %d\n", index, value) } }
如果不需要索引,可使用 _ 省略:
for _, value := range items { fmt.Println(value) }
遍历 map
package main import "fmt" func main() { items := map[string]int{"Jerry": 175, "Jack": 181} for key, value := range items { fmt.Printf("%s: %d\n", key, value) } }
遍历字符串
package main import "fmt" func main() { str := "Go编程语言" for index, char := range str { fmt.Printf("索引 %d: 字符 %c\n", index, char) } }
循环控制语句
在 Go 中,有 3 种循坏控制语句,分别为 continue、break、goto。
语句 | 作用 |
continue | 跳过当前循环,继续下一次循环 |
break | 终止当前循环 |
goto | 直接跳转到指定标签 |
goto 语句使用示例:
package main import "fmt" func main() { index := 0 LOOP: if index < 5 { fmt.Println("index =", index) index++ goto LOOP // 继续跳转到 LOOP 标签 } }
输出结果:
index = 0 index = 1 index = 2 index = 3 index = 4
Go 语言的循环结构 简单而强大,只有 for 语句,但可以实现 while 和 do-while 功能效果,并且可以使用 range 遍历各种数据结构。