写C语言程序时,总免不了要让代码自己做决定。比如,用户输入了一个数,你想让它判断是正数还是负数;或者做个简单的登录验证,密码对了才允许进入。这些场景背后,靠的就是条件判断。
if语句:最基础的“如果”
if 是C语言中最常见的条件判断方式。它就像生活中我们说的“如果今天下雨,我就带伞”。在程序里,只要条件成立,括号里的代码就会执行。
#include <stdio.h>
int main() {
int score = 85;
if (score >= 60) {
printf("成绩合格\n");
}
return 0;
}
上面这段代码中,如果成绩大于等于60,就会输出“成绩合格”。否则,什么也不做。
if-else:二选一的情况
很多时候,事情不是“做”或“不做”,而是“做A”或“做B”。这时候就得加上 else。
#include <stdio.h>
int main() {
int age = 17;
if (age >= 18) {
printf("可以考驾照\n");
} else {
printf("还不满18岁,不能考\n");
}
return 0;
}
这种结构适合处理非此即彼的逻辑,像开关一样,只能选一边。
多重判断:应对更复杂的情况
现实中的决策往往不止两三种可能。比如学生成绩分A、B、C、D四个等级,这就需要用到 if-else if 链。
#include <stdio.h>
int main() {
int score = 72;
if (score >= 90) {
printf("等级:A\n");
} else if (score >= 80) {
printf("等级:B\n");
} else if (score >= 70) {
printf("等级:C\n");
} else {
printf("等级:D\n");
}
return 0;
}
注意,一旦某个条件满足,后面的 else if 就不会再检查了。这就像考试评分,达到A就不必再看是不是B了。
嵌套判断:层层筛选
有时候一个条件还不够,得再加一层。比如进网吧,不仅要满18岁,还得出示身份证。
if (age >= 18) {
if (hasID == 1) {
printf("允许进入\n");
} else {
printf("有年龄但无证件,禁止入内\n");
}
} else {
printf("未成年,禁止入内\n");
}
嵌套能让逻辑更精细,但别嵌太多层,否则容易把自己绕晕。
switch语句:多分支的简洁写法
当判断的是同一个变量是否等于某些固定值时,用 switch 更清晰。比如菜单选择。
#include <stdio.h>
int main() {
int choice = 2;
switch (choice) {
case 1:
printf("启动游戏\n");
break;
case 2:
printf("加载存档\n");
break;
case 3:
printf("退出游戏\n");
break;
default:
printf("无效选项\n");
break;
}
return 0;
}
每个 case 后面跟一个可能的值,匹配成功就执行对应代码。记得加 break,不然会一直往下跑,出现“穿透”现象。
条件表达式:一行搞定简单判断
对于特别简单的判断,比如取最大值,可以用三元运算符 ? :,写起来更紧凑。
int a = 10, b = 15;
int max = (a > b) ? a : b;
printf("较大的数是:%d\n", max);
这行代码的意思是:如果 a 大于 b,max 就等于 a,否则等于 b。适合替代简单的 if-else。