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 遍历各种数据结构。