C语言条件判断:让程序学会“看情况办事”

写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。