Go 语言提供了灵活的循环语句,帮助开发者在代码中重复执行某些操作。与许多编程语言不同,Go 只有一种循环结构,即 for 循环。尽管 Go 语言没有 whiledo-while 循环,for 循环本身足以实现所有常见的循环模式。


📖 目录

  1. for 循环
  2. for 循环的初始化、条件判断与迭代
  3. 死循环
  4. for 循环的简写形式
  5. break 和 continue 语句
  6. 参考资料

1. for 循环

for 是 Go 语言唯一的循环结构。它不仅可以用于实现常见的 for 循环,还能替代 whiledo-while 循环。

1.1 基本语法

for 初始化; 条件; 迭代 {
    // 循环体
}

  • 初始化:循环开始时执行一次的代码,一般用于声明和初始化变量。
  • 条件:每次循环前都会判断的条件,当条件为 true 时执行循环体;为 false 时跳出循环。
  • 迭代:每次循环结束后执行的操作,通常用于更新循环变量。

示例:

package main

import "fmt"

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

输出:

1
2
3
4
5


2. for 循环的初始化、条件判断与迭代

在 Go 中,for 循环的三个部分——初始化、条件和迭代—是可选的,可以根据需要省略某些部分来控制循环。

2.1 只包含条件的 for 循环

如果你省略了初始化和迭代部分,for 循环将相当于一个 while 循环,只有条件部分。

示例:

package main

import "fmt"

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

输出:

1
2
3
4
5

2.2 无限循环(死循环)

如果省略了所有三部分,则 for 循环将变成一个无限循环,类似于 while (true)for (;;)。这通常用在你想不断执行某些操作,直到某个条件发生时。

示例:

package main

import "fmt"

func main() {
    i := 1
    for {
        fmt.Println(i)
        i++
        if i > 5 {
            break
        }
    }
}

输出:

1
2
3
4
5


3. 死循环

死循环(无限循环)用于没有明确条件的情况下持续执行操作,通常在等待用户输入或处理持续任务时使用。可以通过 break 或其他条件来退出循环。

示例:

package main

import "fmt"

func main() {
    i := 1
    for {
        fmt.Println(i)
        i++
        if i == 4 {
            break
        }
    }
}

输出:

1
2
3


4. for 循环的简写形式

Go 语言的 for 循环可以有简写形式,具体如下:

  • 省略初始化:不写初始化部分,可以将其放在外部。
  • 省略条件判断:不写条件判断部分,默认为 true
  • 省略迭代:不写迭代部分。

示例:

package main

import "fmt"

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

上面的代码等价于:

package main

import "fmt"

func main() {
    i := 1
    for {
        if i > 5 {
            break
        }
        fmt.Println(i)
        i++
    }
}


5. break 和 continue 语句

在循环体内,breakcontinue 语句可以控制循环的执行流程。

  • break 语句:跳出当前循环,结束循环的执行。
  • continue 语句:跳过当前循环的剩余部分,继续下一次循环。

5.1 使用 break 跳出循环

package main

import "fmt"

func main() {
    for i := 1; i <= 5; i++ {
        if i == 3 {
            break // 当 i 为 3 时,跳出循环
        }
        fmt.Println(i)
    }
}

输出:

1
2

5.2 使用 continue 跳过循环

package main

import "fmt"

func main() {
    for i := 1; i <= 5; i++ {
        if i == 3 {
            continue // 当 i 为 3 时,跳过此次循环
        }
        fmt.Println(i)
    }
}

输出:

1
2
4
5


6. 参考资料


Go 语言的 for 循环结构简单且强大,通过灵活的语法形式,能够应对多种不同类型的循环需求。从基本的计数循环到无限循环,再到控制循环流的 breakcontinue,Go 提供了丰富的选择来高效地处理循环逻辑。