跳到主要内容

Go 循环

介绍

在编程中,循环是一种重复执行代码块的结构。Go 语言提供了强大的循环功能,主要通过 for 关键字实现。与其他编程语言不同,Go 没有 whiledo-while 循环,而是通过 for 循环的变体来实现类似的功能。

本文将详细介绍 Go 语言中的循环结构,包括基本 for 循环、嵌套循环以及如何控制循环流程。我们还将通过实际案例展示循环在真实场景中的应用。

基本 for 循环

Go 语言中的 for 循环是最常用的循环结构。它的基本语法如下:

go
for 初始化语句; 条件表达式; 后置语句 {
// 循环体
}
  • 初始化语句:在循环开始前执行,通常用于初始化计数器。
  • 条件表达式:在每次循环迭代前检查,如果为 true,则继续执行循环体。
  • 后置语句:在每次循环迭代后执行,通常用于更新计数器。

示例:打印数字 1 到 5

go
package main

import "fmt"

func main() {
for i := 1; i <= 5; i++ {
fmt.Println(i)
}
}

输出:

1
2
3
4
5
提示

在 Go 中,for 循环的初始化语句和后置语句是可选的。你可以省略它们,只保留条件表达式,从而实现类似 while 循环的功能。

for 循环的变体

1. 省略初始化语句和后置语句

如果你只需要条件表达式,可以这样写:

go
i := 1
for i <= 5 {
fmt.Println(i)
i++
}

输出:

1
2
3
4
5

2. 无限循环

如果你省略所有部分,for 循环将成为一个无限循环:

go
for {
fmt.Println("This will run forever!")
}
警告

无限循环通常需要配合 break 语句使用,以避免程序陷入死循环。

控制循环流程

break 语句

break 语句用于立即终止循环。它通常与条件语句结合使用。

go
for i := 1; i <= 10; i++ {
if i == 6 {
break
}
fmt.Println(i)
}

输出:

1
2
3
4
5

continue 语句

continue 语句用于跳过当前迭代,直接进入下一次迭代。

go
for i := 1; i <= 5; i++ {
if i == 3 {
continue
}
fmt.Println(i)
}

输出:

1
2
4
5

嵌套循环

你可以在一个循环中嵌套另一个循环,这称为嵌套循环。嵌套循环通常用于处理多维数据结构,如二维数组。

示例:打印九九乘法表

go
package main

import "fmt"

func main() {
for i := 1; i <= 9; i++ {
for j := 1; j <= i; j++ {
fmt.Printf("%d*%d=%-2d ", j, i, i*j)
}
fmt.Println()
}
}

输出:

1*1=1  
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
...

实际应用场景

1. 遍历数组或切片

for 循环常用于遍历数组或切片中的元素。

go
package main

import "fmt"

func main() {
fruits := []string{"apple", "banana", "cherry"}
for i, fruit := range fruits {
fmt.Printf("Index: %d, Fruit: %s\n", i, fruit)
}
}

输出:

Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: cherry

2. 处理用户输入

你可以使用循环来处理用户输入,直到用户输入特定值为止。

go
package main

import (
"fmt"
"strings"
)

func main() {
var input string
for {
fmt.Print("Enter 'quit' to exit: ")
fmt.Scan(&input)
if strings.ToLower(input) == "quit" {
break
}
fmt.Println("You entered:", input)
}
}

总结

Go 语言中的 for 循环是一个非常灵活的工具,可以用于实现各种循环逻辑。通过掌握 for 循环的基本语法及其变体,你可以轻松处理重复性任务。此外,breakcontinue 语句为你提供了更精细的控制能力。

备注

建议你通过编写一些简单的程序来练习 for 循环的使用,例如计算阶乘、打印图形等。

附加资源

练习

  1. 编写一个程序,使用 for 循环计算 1 到 100 的和。
  2. 编写一个程序,使用嵌套循环打印一个 5x5 的星号(*)矩阵。
  3. 修改用户输入示例,使其在用户输入 "exit" 时退出循环。

通过完成这些练习,你将更好地理解 Go 语言中的循环结构。