流程控制

while

预计阅读时间1 分 3 views

前言

在 Go 语言中,我们使用循环来重复执行一段代码,直到满足特定条件。然而,与其他编程语言不同,Go 并没有专门的 while 关键字。然而,我们可以利用 for 循环来实现 while 循环的功能。

作用

while 循环用于在满足特定条件之前重复执行一段代码。它的主要作用是使程序能够在满足某个条件时持续执行代码块,而一旦条件不再满足,则结束循环。

使用场景

  1. 重复任务: 当需要重复执行某段代码,直到满足某个条件时,例如读取用户输入直到用户输入有效值。
  2. 条件判断: 用于在满足某个条件之前不断执行某项任务,比如在用户登录成功之前不断尝试登录。
  3. 动态数据处理: 处理动态变化的数据,例如从数据库中读取数据直到所有数据被处理完成。

示例

  1. 示例 1: 使用 for 循环打印1到5之间的数字
   package main
   import ("fmt")

   func main() {
     number := 1

     for number <= 5 {
       fmt.Println(number)
       number++
     }
   }

输出:

   1
   2
   3
   4
   5

解释:

  • 初始化:number 被初始化为 1
  • 条件检查:number <= 5,条件为 true 时执行循环体。
  • 循环体:打印 number 的值,并将 number 增加 1
  • 过程:
    • 第1次迭代:number = 1,打印 1,然后 number 增加到 2
    • 第2次迭代:number = 2,打印 2,然后 number 增加到 3
    • 第3次迭代:number = 3,打印 3,然后 number 增加到 4
    • 第4次迭代:number = 4,打印 4,然后 number 增加到 5
    • 第5次迭代:number = 5,打印 5,然后 number 增加到 6
    • number = 6 时,条件 number <= 5false,循环终止。
  1. 示例 2: 使用 for 循环生成乘法表
   package main
   import ("fmt")

   func main() {
     multiplier := 1

     // 循环10次
     for multiplier <= 10 {

       // 计算乘积
       product := 5 * multiplier

       // 打印乘法表,格式为 5 * 1 = 5
       fmt.Printf("5 * %d = %d\n", multiplier, product)
       multiplier++
     }
   }

输出:

   5 * 1 = 5
   5 * 2 = 10
   5 * 3 = 15
   5 * 4 = 20
   5 * 5 = 25
   5 * 6 = 30
   5 * 7 = 35
   5 * 8 = 40
   5 * 9 = 45
   5 * 10 = 50

解释:

  • 初始化:multiplier 被初始化为 1
  • 循环从 multiplier = 1multiplier <= 10
    • 在每次迭代中,计算 5 乘以 multiplier 的值,并将结果打印出来。
    • 循环结束时,multiplier 的值为 11

Go do…while 循环

在 Go 中,我们可以利用 for 循环来模拟 do...while 循环的功能。do...while 循环至少会执行一次循环体,然后在每次循环结束后检查条件。

示例: 使用 for 循环模拟 do...while 循环

package main
import "fmt"

func main(){
  number := 1

  // 无限循环
  for {

    // 终止循环的条件
    if number > 5 {
      break
    }

    fmt.Printf("%d\n", number)
    number++
  }
}

输出:

1
2
3
4
5

解释:

  • 使用 for 循环创建一个无限循环。
  • 循环体内的 if 语句作为 do...while 循环中的 while 部分,用于检查是否满足终止条件。
  • number > 5 时,使用 break 语句终止循环。

Leave a Comment

分享此文档

while

或复制链接

内容