首页 > 编程笔记 > C语言笔记 阅读:104

C语言if else语句的用法(非常详细,附带实例)

在 C语言中,if else 语句是一种条件控制结构,用于根据特定条件决定程序的执行路径。通过使用 if else 语句,可以让 C语言程序在满足某些条件时执行一段代码,否则执行另一段代码。

本节将详细讲解 if else 语句的语法、用法、嵌套以及注意事项。

if else语句的基本概念

if else语句的核心是条件判断。程序会检查一个条件表达式的真假(非 0 为真,0 为假),然后根据结果执行对应的代码块。它的基本逻辑是:“如果条件成立,就做这件事;否则,做另一件事。” C语言提供了灵活的语法支持单条件、多条件和嵌套条件判断。
 

if else 语句有以下几种形式:


接下来,我们将逐一探讨这些形式及其应用。

基本语法

1) 简单if语句

最简单的形式,只有 if,用于当条件成立时执行一段代码。

if (条件表达式) {
    // 条件为真时执行的代码
}


【实例】检查正数。

#include <stdio.h>

int main(void) {
    int num = 10;
    if (num > 0) {
        printf("%d 是正数\n", num);
    }
    return 0;
}

输出结果:

10 是正数

说明:条件 num > 0 为真,执行 printf;若 num 小于等于 0,则跳过代码块。

2) if else语句

添加 else 分支,当条件不成立时执行另一段代码。

if (条件表达式) {
    // 条件为真时执行的代码
} else {
    // 条件为假时执行的代码
}

【实例】判断奇偶。

#include <stdio.h>

int main(void) {
    int num = 7;
    if (num % 2 == 0) {
        printf("%d 是偶数\n", num);
    } else {
        printf("%d 是奇数\n", num);
    }
    return 0;
}

输出结果:

7 是奇数

说明:条件 num % 2 == 0 检查是否为偶数,若假则进入 else 分支。

3) 多重if else(else if)

当需要检查多个条件时,使用 else if,按顺序逐一判断。

if (条件1) {
    // 条件1 为真时执行
} else if (条件2) {
    // 条件1 为假且条件2 为真时执行
} else {
    // 所有条件均为假时执行
}

【实例】成绩等级。

#include <stdio.h>

int main(void) {
    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;
}

输出结果:

良好

说明:条件按顺序检查,一旦某个条件成立,后续分支被跳过。若所有条件均假,执行 else

4) 嵌套if else

ifelse 块中再嵌套 if else,用于更复杂的逻辑判断。

if (条件1) {
    if (条件2) {
        // 条件1 和条件2 都为真时执行
    } else {
        // 条件1 真但条件2 假时执行
    }
} else {
    // 条件1 为假时执行
}

【实例】年龄与身高。

#include <stdio.h>

int main(void) {
    int age = 15;
    int height = 170;
    if (age >= 18) {
        if (height >= 165) {
            printf("可以参加成人组比赛\n");
        } else {
            printf("身高不足\n");
        }
    } else {
        printf("未成年,不能参赛\n");
    }
    return 0;
}

输出结果:

未成年,不能参赛

说明:age >= 18 不成立,直接跳到外层 else,无需检查嵌套条件。

if语句中的条件表达式

if 后的条件表达式必须返回一个值,C语言将其视为布尔逻辑:


【实例】非零即真。

#include <stdio.h>

int main(void) {
    int x = 5;
    if (x) {
        printf("x 是非零值\n");
    } else {
        printf("x 是零\n");
    }
    return 0;
}

输出结果:

x 是非零值

直接用变量 x 作为条件,非 0 为真,0 为假。

if else语句的常见用法

1) 单行语句省略大括号

若代码块只有一行,可省略 {},但不推荐,因为易出错。

if (x > 0) printf("正数\n");
else printf("非正数\n");

2) 逻辑运算符组合条件

使用 &&(与)、||(或)、!(非)组合多个条件。

#include <stdio.h>

int main(void) {
    int temp = 25;
    if (temp > 0 && temp < 100) {
        printf("液体状态\n");
    } else {
        printf("非液体状态\n");
    }
    return 0;
}

输出结果:

液体状态

3) 三元运算符替代简单if else

对于简单判断,可用 ?: 替代。

int max = (a > b) ? a : b; // 等价于 if (a > b) max = a; else max = b;

if else语句的注意事项

1) 悬垂else问题

当嵌套 if 未正确使用大括号时,else 会绑定到最近的 if,可能导致逻辑错误。

#include <stdio.h>

int main(void) {
    int x = 5, y = 10;
    if (x > 0)
        if (y > 0)
            printf("x 和 y 都大于 0\n");
    else
        printf("y 不大于 0\n");
    return 0;
}

输出结果:

x 和 y 都大于 0

误解:若 y = -1,不会输出任何内容,因为 else 绑定到内层 if。解决方法是加 {} 明确范围。

2) 条件表达式类型

确保条件表达式的类型正确,避免意外结果。例如,浮点数比较需注意精度。

if (0.1 + 0.2 == 0.3) // 可能因浮点误差失败

3) 空语句

避免在 if 后误加分号 ;,导致代码块失效。

#include <stdio.h>

int main(void) {
    int x = 5;
    if (x > 0); // 错误,分号结束 if
        printf("x > 0\n");
    return 0;
}

输出结果:

x > 0

说明:分号使 if 为空,printf 无条件执行。

总结

C语言的 if else 语句提供了强大的条件控制能力,从简单判断到多重分支和嵌套逻辑都能胜任。

读完本文,你已经彻底掌握了 if else 语句的用法,可以灵活应对各种程序的流程需求。

相关文章