一、循环结构的核心共性
所有循环的本质都是:满足条件时重复执行一段代码,条件不满足时终止循环。核心要素包括:
- 初始化:给循环变量赋初始值(仅执行一次);
- 条件判断:决定是否继续循环的核心(布尔表达式,0 为假 / 非 0 为真);
- 循环体:需要重复执行的代码块;
- 更新 / 迭代:修改循环变量,避免无限循环(do-while 需手动写在循环体中)。
二、三种循环的核心语法 + 执行逻辑
1. for 循环(已知循环次数,最常用)
核心语法
cpp
运行
for (初始化表达式; 条件表达式; 更新表达式) { 循环体; // 可包含break/continue }执行逻辑(固定五步,闭环执行)
关键细节:
- 初始化表达式仅在循环开始时执行一次(如
int i=1); - 条件表达式为真才会执行循环体,为假直接终止;
- 更新表达式(如
i++)在循环体执行完后才执行; - 示例(计算 1-5 的和):
cpp
运行
int sum = 0; for (int i=1; i<=5; i++) { // 初始化:i=1 → 判断:i<=5 → 循环体:sum+=i → 更新:i++ sum += i; } // 执行步骤:i=1(sum=1) → i=2(sum=3) → i=3(sum=6) → i=4(sum=10) → i=5(sum=15) → i=6(条件假,终止)
2. while 循环(未知循环次数,先判断后执行)
核心语法
cpp
运行
// 初始化通常写在while外 初始化表达式; while (条件表达式) { 循环体; // 必须包含更新表达式,否则无限循环 }执行逻辑(无固定初始化步骤,先判断再执行)
关键细节:
- 初始化在循环外执行,仅一次;
- 若初始条件为假,循环体一次都不会执行;
- 必须在循环体中手动写更新逻辑(如
i++),否则会无限循环; - 示例(猜数字):
cpp
运行
int guess, target=7; cin >> guess; // 初始化:输入第一个猜测值 while (guess != target) { // 先判断:输入≠7则循环 cout << "猜错,再试:"; cin >> guess; // 更新:重新输入(循环体中) }
3. do-while 循环(至少执行一次,先执行后判断)
核心语法
cpp
运行
// 初始化写在do外 初始化表达式; do { 循环体; // 必须包含更新表达式 } while (条件表达式); // 末尾必须加;执行逻辑(先执行,后判断,保底执行一次)
关键细节:
- 无论条件是否为真,循环体至少执行一次(核心区别于 while);
- 条件表达式后的分号
;不能省略; - 更新逻辑仍需写在循环体中;
- 示例(强制输入正数):
cpp
运行
int num; do { cout << "输入正数:"; cin >> num; // 先执行输入(哪怕输入负数) } while (num <= 0); // 输入≤0则重新执行循环体
三、循环控制语句对执行逻辑的影响
- break:立即终止当前循环,直接跳转到循环外的后续代码(中断整个循环流程);示例:
for(int i=1;i<=5;i++){if(i==3) break;}→ 循环在 i=3 时终止,仅执行 2 次。 - continue:跳过本次循环剩余的代码,直接执行 “更新表达式”(for)或 “条件判断”(while/do-while),不终止整个循环;示例:
for(int i=1;i<=5;i++){if(i==3) continue; cout<<i;}→ 跳过 i=3,输出 1 2 4 5。
总结
- for 循环:语法紧凑,初始化 / 条件 / 更新一体化,适合已知循环次数(如遍历 1-100);
- while 循环:语法灵活,适合未知循环次数,但初始条件为假时循环体不执行;
- do-while 循环:唯一 “先执行后判断” 的循环,确保循环体至少执行一次;
- 所有循环的核心:必须通过 “更新逻辑” 改变循环变量,否则会陷入无限循环。