Go 条件语句
Go 输入输出 

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