✅ C语言流程控制:if判断语句全解析
🌟 一、单分支 if
📌 条件成立则执行,否则跳过。
c
#include <stdio.h>
int main() {
int age;
printf("请输入年龄:");
scanf("%d", &age);
if (age >= 18) {
printf("已成年,可以独立行为!\n");
}
return 0;
}
🌟 二、if...else(二选一结构)
c
#include <stdio.h>
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (num % 2 == 0) {
printf("偶数\n");
} else {
printf("奇数\n");
}
return 0;
}
🌟 三、if...else if...else(多分支结构)
c
#include <stdio.h>
int main() {
float score;
printf("请输入成绩:");
scanf("%f", &score);
if (score >= 90) {
printf("优秀(A)\n");
} else if (score >= 80) {
printf("良好(B)\n");
} else if (score >= 70) {
printf("中等(C)\n");
} else if (score >= 60) {
printf("及格(D)\n");
} else {
printf("不及格(F)\n");
}
return 0;
}
🌟 四、嵌套 if(条件中再判断)
c
#include <stdio.h>
int main() {
int year;
printf("请输入年份:");
scanf("%d", &year);
if (year % 4 == 0) {
if (year % 100 != 0) {
printf("闰年\n");
} else {
if (year % 400 == 0)
printf("闰年\n");
else
printf("平年\n");
}
} else {
printf("平年\n");
}
return 0;
}
⚠️ 建议写法(更简洁):
c
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
✅ 五、综合示例:多条件判断
📌 输入身高和体重,判断是否标准体重
- 标准体重 ≈ 身高cm - 110
- 允许误差 ±5kg
c
#include <stdio.h>
int main() {
int height, weight, standard;
printf("请输入身高(cm)和体重(kg):");
scanf("%d %d", &height, &weight);
standard = height - 110;
if (weight > standard + 5) {
printf("偏重\n");
} else if (weight < standard - 5) {
printf("偏轻\n");
} else {
printf("标准体重\n");
}
return 0;
}
🧠 六、常见错误总结
| 错误写法 | 原因 |
|---|---|
if(x = 5) |
= 是赋值,应使用 == |
if x > 0 |
条件必须加括号 () |
多语句不加 {} |
可能造成逻辑错误 |
| 缩进混乱 | 可读性差,易错 |
✅ 建议:每次都写 {},培养规范思维
🧪 七、课堂练习
📝 练习1:判断是否正数
c
#include <stdio.h>
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
if (n > 0)
printf("正数\n");
else
printf("非正数\n");
return 0;
}
📝 练习2:最高分判断(两者比较)
c
#include <stdio.h>
int main() {
float a, b;
printf("请输入两个分数:");
scanf("%f %f", &a, &b);
if (a > b)
printf("第一个更高:%.2f\n", a);
else
printf("第二个更高:%.2f\n", b);
return 0;
}
📝 练习3:三角形合法性判断
任意两边之和大于第三边 👉 才能构成三角形
c
#include <stdio.h>
int main() {
int a, b, c;
printf("请输入三条边长:");
scanf("%d %d %d", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a)
printf("可以构成三角形\n");
else
printf("不能构成三角形\n");
return 0;
}
🔜 下一节预告
C语言多分支结构 ------ switch语句全解析
对菜单选择、分类判断特别好用 ✅