C语言条件语句 #

一、if语句 #

1.1 基本语法 #

c
if (条件) {
    语句;
}

1.2 使用示例 #

c
#include <stdio.h>

int main() {
    int score = 85;
    
    if (score >= 60) {
        printf("及格\n");
    }
    return 0;
}

1.3 单语句省略大括号 #

c
if (score >= 60)
    printf("及格\n");

建议始终使用大括号,避免错误。

二、if-else语句 #

2.1 基本语法 #

c
if (条件) {
    语句1;
} else {
    语句2;
}

2.2 使用示例 #

c
#include <stdio.h>

int main() {
    int score = 55;
    
    if (score >= 60) {
        printf("及格\n");
    } else {
        printf("不及格\n");
    }
    return 0;
}

三、if-else if语句 #

3.1 基本语法 #

c
if (条件1) {
    语句1;
} else if (条件2) {
    语句2;
} else {
    语句3;
}

3.2 使用示例 #

c
#include <stdio.h>

int main() {
    int score = 85;
    
    if (score >= 90) {
        printf("优秀\n");
    } else if (score >= 80) {
        printf("良好\n");
    } else if (score >= 60) {
        printf("及格\n");
    } else {
        printf("不及格\n");
    }
    return 0;
}

四、嵌套if语句 #

4.1 基本使用 #

c
#include <stdio.h>

int main() {
    int age = 25;
    int score = 85;
    
    if (age >= 18) {
        if (score >= 60) {
            printf("成年且及格\n");
        } else {
            printf("成年但不及格\n");
        }
    } else {
        printf("未成年\n");
    }
    return 0;
}

4.2 else匹配问题 #

c
if (a > 0)
    if (b > 0)
        printf("a和b都大于0\n");
else
    printf("a不大于0\n");

else与最近的if匹配。使用大括号避免歧义:

c
if (a > 0) {
    if (b > 0) {
        printf("a和b都大于0\n");
    }
} else {
    printf("a不大于0\n");
}

五、条件运算符 #

5.1 语法 #

c
条件 ? 表达式1 : 表达式2

5.2 使用示例 #

c
#include <stdio.h>

int main() {
    int a = 10, b = 20;
    int max = (a > b) ? a : b;
    printf("最大值: %d\n", max);
    
    int score = 75;
    printf("%s\n", score >= 60 ? "及格" : "不及格");
    return 0;
}

六、常见错误 #

6.1 混淆 = 和 == #

c
if (a = 5) {
}

6.2 分号错误 #

c
if (a > 5);
{
    printf("总是执行\n");
}

6.3 条件表达式 #

c
if (a = b + c) {
}

这是赋值表达式,不是比较。

七、总结 #

语句 说明
if 单条件判断
if-else 二选一
if-else if 多条件判断
?: 三目运算符

下一步,让我们学习switch语句!

最后更新:2026-03-26