当需要重复执行一段代码时,可以使用循环。C++ 提供三种循环结构,各有适用场景,while 是其中最基础、最直观的一种。
5.1
程序有时需要把同一段代码重复执行很多遍——打印 1 到 100、反复读入数据直到用户输入 0 为止。这种"重复执行"的能力,就是循环结构要解决的问题。
C++ 提供三种循环结构,虽然写法不同,但本质上都是在做同一件事:反复判断条件、反复执行代码。选哪一种,取决于"循环次数是否提前知道"以及"要不要至少执行一次":
while 循环会先判断条件,条件为真才执行循环体,条件为假则直接跳过,适合循环次数不确定的情况。
false 的操作(如 i++),否则程序会永远运行下去。死循环是初学者最常见的错误之一!有一种特殊写法值得了解——while (true) 搭配 break(见 5.4 节)使用,让循环的退出时机由内部逻辑决定,而不是写在 while 的条件里:
| 1 | int num; |
| 2 | while (true) // 条件恒为真,退出时机交给内部逻辑决定 |
| 3 | { |
| 4 | cin >> num; |
| 5 | if (num == 0) break; // 输入 0 时才退出 |
| 6 | cout << num * 2 << endl; |
| 7 | } |
把本节内容汇总成几条最容易踩坑的规则:
false,程序会一直运行下去,只能强制终止。写 while 循环时,先确认条件里涉及的变量在循环体内确实会被修改。while(true) 必须搭配 break 或 return 才能退出。如果内部逻辑漏掉了退出判断,程序同样会陷入死循环。for 能把初始化、条件、更新写在同一行,比 while 更紧凑、更不容易漏掉更新语句。while 更适合"不知道要循环几次,只知道什么时候停"的场景。