目录
C语言中,分支和循环是基本的控制结构,用于根据条件执行不同的代码路径,或者重复执行某段代码。
一.分支语句
1.if 语句:根据条件执行代码块
int score = 85;
if (score >= 60) {
printf("及格\n");
}
2.if-else语句:
当条件为真时执行一个代码块,为假时执行另一个代码块。
int num = 7;
if (num % 2 == 0) {
printf("偶数\n");
} else {
printf("奇数\n");
}
3.if-else if-else语句:
用于在多个条件之间选择。
int temperature = 25;
if (temperature > 30) {
printf("高温\n");
} else if (temperature > 20) {
printf("舒适\n"); // 输出此项
} else {
printf("低温\n");
}
4.switch语句:
用于根据变量的值选择要执行的代码块。
char grade = 'B';
switch (grade) {
case 'A':
printf("优秀\n");
break;
case 'B':
printf("良好\n"); // 输出此项
break;
default:
printf("其他\n");
}
二.循环语句
1.while循环:
当给定条件为真时,重复执行代码块。
int count = 0;
while (count < 5) {
printf("%d ", count++); // 输出:0 1 2 3 4
}
2.do-while循环:
至少执行一次代码块,然后当给定条件为真时重复执行。
int i = 10;
do {
printf("%d ", i--); // 输出:10 9 ... 0
} while (i >= 0);
3.for循环:
用于初始化表达式,然后检查条件,并在条件为真时重复执行代码块,改变初始值。
for (int i = 0; i < 5; i++) {
printf("%d ", i); // 输出:0 1 2 3 4
}
补充:可以使用for或while语句创建无限循环
在编写分支和循环语句时,我们要确保代码块内的逻辑清晰,避免出现死循环(无限循环且没有出口),并确保所有可能的执行路径都有合理的退出点。
三.循环控制语句
1. break
(立即终止当前循环)
for (int i = 0; i < 10; i++) {
if (i == 5) break;
printf("%d ", i); // 输出:0 1 2 3 4
}
2. continue
(跳过本次循环剩余代码)
for (int i = 0; i < 5; i++) {
if (i == 2) continue;
printf("%d ", i); // 输出:0 1 3 4
}
四.常见错误
1. 悬空else问题
if (a > 0)
if (b > 0)
printf("Both positive");
else // 实际匹配最近的if(b>0)
printf("Unexpected output");
2.switch穿透问题
switch (n) {
case 1:
printf("1");
// 缺少break
case 2:
printf("2"); // 当n=1时会输出"12"
break;
}