首页 > 编程笔记 > C语言笔记(精华版)

C语言if else语句的用法(非常完整和详细)

C语言中的 if else 语句是一种强大的控制流结构,它允许程序根据不同条件执行不同的代码块。通过使用 if else 语句,我们可以让程序做出决策,从而实现更复杂和灵活的逻辑。

基本的 if 语句

if 语句的基本语法如下:

if (condition) {
    // 如果条件为真,执行这里的代码
}

在这个结构中,condition 是一个表达式,它的结果会被解释为真或假。如果条件为真(非零值),大括号内的代码块将被执行。如果条件为假(零值),程序将跳过这个代码块,继续执行 if 语句之后的代码。


让我们通过一个简单的例子来理解 if 语句的工作原理:

#include <stdio.h>

int main() {
    int age = 18;
    
    if (age >= 18) {
        printf("你已经成年了\n");
    }
    
    return 0;
}

在这个例子中,我们检查变量 age 是否大于或等于 18,如果条件成立,程序将输出 "你已经成年了" 的消息。运行这段代码,我们会得到以下输出:

你已经成年了

if else 语句

if 语句还可以与 else 子句结合使用,以处理条件不成立的情况。if else 语句的基本语法如下:

if (条件) {
    // 如果条件为真,执行这里的代码
} else {
    // 如果条件为假,执行这里的代码
}

这个结构告诉编译器:如果括号中的条件为真(非零),则执行 if 后面的代码块;否则,执行 else 后面的代码块。每个代码块都用花括号{ }包围,以明确定义其范围。
 

在 if 语句中,条件可以是任何有效的 C 表达式,并且这个表达式的结果会被转换为布尔值:非零值被视为真,而零被视为假。常见的条件包括比较表达式、逻辑表达式,甚至是简单的变量或函数调用。


让我们看一个简单的例子来说明 if else 语句的使用:

#include <stdio.h>

int main() {
    int age;
    
    printf("请输入你的年龄:");
    scanf("%d", &age);
    
    if (age >= 18) {
        printf("你已经成年了。\n");
    } else {
        printf("你还未成年。\n");
    }
    
    return 0;
}

在这个例子中,程序首先要求用户输入年龄。然后,它使用 if-else 语句来检查年龄是否大于或等于 18。如果条件为真,程序会打印 "你已经成年了";否则,它会打印 "你还未成年"。

多重 if else 语句

对于更复杂的条件判断,我们可以使用多重 if else 语句来进行处理。多重 if else 语句的基本格式如下:

if (条件1) {
    // 如果条件1为真,执行这里的代码
} else if (条件2) {
    // 如果条件2为真,执行这里的代码
} else if (条件3) {
    // 如果条件3为真,执行这里的代码
} else {
    // 如果以上所有条件都为假,执行这里的代码
}

在这个结构中,程序会从上到下依次检查每个条件,一旦遇到一个为真的条件,就会执行对应的代码块,然后跳出整个 if else 结构。如果所有条件都为假,那么最后的 else 块(如果有的话)将被执行。


让我们通过一个具体的例子来深入理解多重 if else 语句的用法,现在假设我们要根据学生的成绩给出对应的等级评价:

#include 

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

    if (score >= 90 && score <= 100) {
        printf("优秀\n");
    } else if (score >= 80 && score < 90) {
        printf("良好\n");
    } else if (score >= 70 && score < 80) {
        printf("中等\n");
    } else if (score >= 60 && score < 70) {
        printf("及格\n");
    } else if (score >= 0 && score < 60) {
        printf("不及格\n");
    } else {
        printf("输入的成绩无效\n");
    }

    return 0;
}

在这个例子中,我们根据学生的成绩范围使用多重 if else 语句来决定输出什么等级评价。程序会从上到下检查每个条件,直到找到一个匹配的条件。例如,如果输入的成绩是 85,程序会执行 printf("良好\n"); 然后结束整个 if-else 结构。


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

请输入学生的成绩(0-100):85
良好

使用多重 if else 语句时,有几点需要注意:

嵌套 if else 语句

C语言允许我们在一个条件语句内部再放置另一个条件语句,形成嵌套 if else。这种结构使得我们能够处理更复杂的逻辑判断,实现多层次的决策过程。嵌套 if else 语句的基本思想是在外层 if 或 else 块内部再放置一个完整的 if else 语句。
 

嵌套 if else 语句的一般格式如下:

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

这种结构允许我们创建复杂的决策树,根据多个条件的组合来执行不同的代码块。每一层的 if else 语句都可以根据特定的条件来细分程序的执行路径。


让我们通过一个具体的例子来理解嵌套 if else 语句的用法。假设我们要编写一个程序,根据学生的成绩和出勤率来决定他们是否能够获得奖学金:

#include 

int main() {
    float grade, attendance;
    
    printf("请输入学生的成绩(0-100):");
    scanf("%f", &grade);
    
    printf("请输入学生的出勤率(0-100):");
    scanf("%f", &attendance);
    
    if (grade >= 85) {
        if (attendance >= 90) {
            printf("恭喜!你获得了一等奖学金!\n");
        } else {
            printf("很遗憾,虽然你的成绩达标,但出勤率不足。你获得了二等奖学金。\n");
        }
    } else {
        if (attendance >= 95) {
            printf("虽然你的成绩未达到一等奖学金标准,但由于出色的出勤率,你获得了三等奖学金。\n");
        } else {
            printf("很抱歉,你没有获得奖学金的资格。继续努力!\n");
        }
    }
    
    return 0;
}

在这个例子中,我们使用嵌套的 if else 语句来处理不同的情况:


这段代码使得我们根据成绩和出勤率的不同组合来决定学生获得的奖学金等级。让我们看几个可能的输出结果:

请输入学生的成绩(0-100):88
请输入学生的出勤率(0-100):92
恭喜!你获得了一等奖学金!

请输入学生的成绩(0-100):90
请输入学生的出勤率(0-100):85
很遗憾,虽然你的成绩达标,但出勤率不足。你获得了二等奖学金。

请输入学生的成绩(0-100):80
请输入学生的出勤率(0-100):96
虽然你的成绩未达到一等奖学金标准,但由于出色的出勤率,你获得了三等奖学金。

请输入学生的成绩(0-100):75
请输入学生的出勤率(0-100):88
很抱歉,你没有获得奖学金的资格。继续努力!

嵌套 if else 语句的优点是它们允许我们处理复杂的条件组合,但也需要注意以下几点:

总结

if 语句是C语言中最基本也是最常用的控制结构之一,它可以让程序根据不同的条件执行不同的操作,从而实现更复杂的逻辑和功能。


在使用 if 语句时,有几点需要注意:

推荐阅读