1. 循环结构
循环结构用于在满足条件的情况下重复执行某段代码,直到条件不满足为止。C语言中提供了三种循环结构:while、do...while 和 for。
1.1 while 循环
语法:
while (循环控制条件) {
循环体中的语句;
能够让循环结束的语句;
}执行流程:
首先判断
循环控制条件是否为真。如果为真,则执行
循环体中的语句。执行完
循环体后,再次判断循环控制条件是否为真。重复上述过程,直到
循环控制条件为假,循环结束。
示例:
int age = 0;
while (age < 18) {
printf("我今年还没成年\n");
age++;
}
printf("我今年刚满18岁\n");输出:
我今年还没成年
(重复 18 次)
我今年刚满18岁
死循环:
如果
循环控制条件永远为真,循环将无法结束,形成死循环。示例:
while (1); // 死循环
练习:计算 1 到 n 的和
#include <stdio.h>
int main() {
int n = 0, sum = 0;
printf("请输入n: ");
scanf("%d", &n);
while (n > 0) {
sum += n;
n--;
}
printf("和是:%d\n", sum);
return 0;
}
1.2 do...while 循环
语法:
do {
循环体中的语句;
能够让循环结束的语句;
} while (循环控制条件); // 注意分号执行流程:
首先执行
循环体中的语句。执行完
循环体后,判断循环控制条件是否为真。如果为真,则继续执行
循环体;否则循环结束。
特点:
do...while循环至少会执行一次循环体,即使循环控制条件一开始就为假。
示例:
int age = 0;
do {
printf("我今年还没成年\n");
age++;
} while (age < 18);练习:获取 1 到 100 之间 7 的倍数的个数
#include <stdio.h>
int main() {
int n = 0;
while (n <= 100) {
if (0 == (n % 7)) {
printf("%d\n", n);
}
n++;
}
return 0;
}
1.3 for 循环
语法:
for (初始化表达式; 循环控制条件; 更新表达式) {
循环体中的语句;
}执行流程:
执行
初始化表达式。判断
循环控制条件是否为真。如果为真,则执行
循环体中的语句。执行完
循环体后,执行更新表达式。重复上述过程,直到
循环控制条件为假,循环结束。
示例:
for (int i = 0; i < 5; i++) {
printf("%d\n", i);
}输出:
0
1
2
3
4
2. 跳转语句
跳转语句用于改变程序的执行顺序,主要包括 break、continue 和 goto。
2.1 break 语句
作用:
- 用于立即退出当前循环或
switch语句。
- 用于立即退出当前循环或
示例:
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当 i 等于 5 时退出循环
}
printf("%d\n", i);
}输出:
0
1
2
3
4
2.2 continue 语句
作用:
- 用于跳过当前循环的剩余部分,直接进入下一次循环。
示例:
for (int i = 0; i < 5; i++) {
if (i == 2) {
continue; // 当 i 等于 2 时跳过本次循环
}
printf("%d\n", i);
}输出:
0
1
3
4
2.3 goto 语句
作用:
- 用于无条件跳转到程序中的某个标签处。
注意:
- 过度使用
goto会降低代码的可读性,应尽量避免。
- 过度使用
示例:
int i = 0;
start:
printf("%d\n", i);
i++;
if (i < 5) {
goto start; // 跳转到 start 标签处
}输出:
0
1
2
3
4
总结
循环结构:
while:先判断条件,再执行循环体。do...while:先执行循环体,再判断条件。for:适合已知循环次数的场景。
跳转语句:
break:退出当前循环或switch语句。continue:跳过当前循环,进入下一次循环。goto:无条件跳转到标签处。
