首页 > 编程笔记 > C语言笔记

C语言if else语句嵌套的例子

C语言 if else 嵌套的基本结构是在一个 if 或 else 语句块内部再包含另一个 if else 语句。这样的结构可以根据需要无限延伸,创建出复杂的条件判断树。不过,过度嵌套可能会导致代码难以阅读和维护,因此在实际编程中需要权衡使用。
 

让我们看一个简单的 if else 嵌套示例,假设我们要根据一个人的年龄来判断他们属于哪个年龄段:

#include <stdio.h>

int main() {
    int age;
    printf("请输入您的年龄:");
    scanf("%d", &age);

    if (age < 0) {
        printf("无效年龄输入!\n");
    } else {
        if (age < 18) {
            printf("您是未成年人。\n");
        } else {
            if (age < 65) {
                printf("您是成年人。\n");
            } else {
                printf("您是老年人。\n");
            }
        }
    }

    return 0;
}

在这个例子中,我们首先检查年龄是否为负数,如果是,则输出错误信息。如果年龄是有效的,我们进入第一层 else 块,然后继续检查年龄是否小于 18。如果小于 18,输出未成年人信息。如果不小于 18,我们进入第二层 else 块,继续检查年龄是否小于 65。根据这个条件,我们决定输出成年人还是老年人信息。


运行这段代码,可能会得到如下输出:

请输入您的年龄:25
您是成年人。

虽然这个例子展示了 if else 嵌套的基本概念,但在实际编程中,我们通常会使用 else if 来简化代码结构,使其更加清晰。让我们重写上面的例子:

#include <stdio.h>

int main() {
    int age;
    printf("请输入您的年龄:");
    scanf("%d", &age);

    if (age < 0) {
        printf("无效年龄输入!\n");
    } else if (age < 18) {
        printf("您是未成年人。\n");
    } else if (age < 65) {
        printf("您是成年人。\n");
    } else {
        printf("您是老年人。\n");
    }

    return 0;
}

这个版本的代码更加简洁和易读,但实现了相同的逻辑。


让我们再看一个更复杂的例子,这次我们将结合使用嵌套的 if else 语句和逻辑运算符来处理多个条件。假设我们正在开发一个简单的成绩评估系统:

#include <stdio.h>

int main() {
    int score;
    printf("请输入学生的分数(0-100):");
    scanf("%d", &score);

    if (score < 0 || score > 100) {
        printf("无效的分数输入!\n");
    } else {
        if (score >= 90) {
            printf("优秀!\n");
            if (score == 100) {
                printf("满分!太棒了!\n");
            }
        } else if (score >= 80) {
            printf("良好。\n");
        } else if (score >= 70) {
            printf("中等。\n");
        } else if (score >= 60) {
            printf("及格。\n");
        } else {
            printf("不及格。\n");
            if (score < 30) {
                printf("需要加倍努力!\n");
            }
        }
    }

    return 0;
}

这个例子展示了如何使用嵌套的 if else 语句来处理多层次的条件判断。我们首先检查分数是否在有效范围内,然后根据不同的分数段给出相应的评价。注意我们如何在某些分支中添加额外的条件判断,比如对满分和极低分的特殊处理。


运行这段代码,可能会得到如下输出:

请输入学生的分数(0-100):95
优秀!

通过这些例子,我们可以看到 if else 嵌套如何帮助我们构建复杂的判断逻辑。然而,当嵌套层次过多时,代码可能变得难以理解和维护。在这种情况下,可以考虑使用 switch case 语句(适用于等值判断),或将复杂的逻辑拆分为单独的函数来提高代码的可读性和可维护性。

推荐阅读