循环语句
概念讲解
for 循环
123for (int i = 0; i < n; i++) {
// 循环体
}while 循环
12345int i = 0;
while (i < n) {
// 循环体
i++;
}do-while 循环
12345int i = 0;
do {
// 循环体
i++;
} while (i < n);break 和 continue
12345678910111213// break 跳出循环
for (int i = 0; i < n; i++) {
if (i == 5) break;
cout << i << " ";
}
// 输出: 0 1 2 3 4
// continue 跳过本次循环
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) continue;
cout << i << " ";
}
// 输出: 1 3 5 7 9考点分析
初赛考查方式
- 选择题: 循环执行次数
- 程序阅读: 循环输出
- 填空题: 循环条件
常见题型
- 循环执行次数
- 嵌套循环
- 循环控制
例题精讲
例题 1:求和
题目: 计算 1~n 的和。
解答:
1234int sum = 0;
for (int i = 1; i <= n; i++) {
sum += i;
}例题 2:嵌套循环
题目: 输出九九乘法表。
解答:
123456for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
cout << j << "x" << i << "=" << i * j << "\t";
}
cout << endl;
}练习题
- 计算 1~100 中所有偶数的和。
查看答案
12345int sum = 0;
for (int i = 2; i <= 100; i += 2) {
sum += i;
}
cout << sum << endl; // 输出 2550- 输出所有三位数的水仙花数。
查看答案
123456789for (int i = 100; i <= 999; i++) {
int a = i / 100; // 百位
int b = (i / 10) % 10; // 十位
int c = i % 10; // 个位
if (a * a * a + b * b * b + c * c * c == i) {
cout << i << endl; // 输出 153, 370, 371, 407
}
}- 求 n 的阶乘。
查看答案
12345long long factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
}
cout << factorial << endl;注意:阶乘增长很快,n > 20 时需要使用 long long 或大数运算。
易错点
⚠️ 注意:
- for 循环的三个表达式都可以省略
- while 循环要注意更新条件
- break 跳出整个循环,continue 跳过本次循环
- 注意循环变量的作用域