循环体是代码块,循环条件是布尔表达式;循环体指需重复执行的逻辑,如cout语句。

循环体是代码块,循环条件是布尔表达式
循环体是你想重复执行的那部分逻辑,比如 cout 或者 <code>sum += arr[i];;而循环条件是一个每次都要求值的表达式,结果必须是 true 或 false,比如 i 、<code>ptr != nullptr。它不负责干活,只决定“还该不该继续跑下去”。
for 循环里条件判断总比循环体多执行一次
这是最容易被忽略的执行细节。以 for (int i = 0; i 为例:
- 第 1 次:i=0 → 判断
i 为 true → 执行循环体 → <code>++i - 第 2 次:i=1 → 判断
i 为 true → 执行循环体 → <code>++i - 第 3 次:i=2 → 判断
i 为 true → 执行循环体 → <code>++i - 第 4 次:i=3 → 判断
i 为 false → 跳出,不进循环体
条件一共判断了 4 次,循环体只执行了 3 次。这个差值在调试边界问题(比如越界访问)时特别关键。
while 和 do-while 的条件位置直接决定是否至少执行一次
这本质是循环条件“放哪儿”的问题:
立即学习“C++免费学习笔记(深入)”;
-
while (cond) { body; }:先判cond,为 false 就跳过整个body -
do { body; } while (cond);:先执行body,再判cond,所以body至少运行一次
典型场景如用户输入验证:do { cin >> x; } while (x 确保至少读一次,避免初始值未定义就判断。
省略循环条件会导致无限循环,但语法上合法
for (int i = 0; ; ++i) 或 while (true) 都是合法写法,但必须在循环体内用 break 或 return 显式退出,否则程序卡死。更危险的是误写成 for (int i = 0; i —— 忘了更新 <code>i,条件永远为真。
这种错误不会报编译错误,运行时才暴露,且难以通过静态检查发现。


















