C语言教程(八):C 语言判断结构详解

一、引言

        在 C 语言编程中,判断结构起着至关重要的作用。它允许程序根据不同的条件来决定执行不同的代码块,从而实现程序的逻辑控制和流程分支。通过合理运用判断结构,开发者能够使程序更加智能地处理各种情况,满足多样化的需求。理解并熟练掌握 C 语言中的判断结构,是编写高效、灵活程序的基础。

二、if 语句

  2.1 语法结构:

if (condition) {
    // 当 condition 为真(非0)时执行的代码块
}

        condition 是一个表达式,其结果会被计算并判断真假。如果 condition 的值为非零(即逻辑真),则大括号 {} 内的代码块将被执行;若 condition 的值为零(逻辑假),则该代码块会被跳过。

  2.2 执行流程:

        程序执行到 if 语句时,首先计算 condition 的值。若为真,进入代码块执行其中的语句;若为假,直接跳过代码块,继续执行 if 语句之后的代码。

  2.3 示例代码:

#include 
int main() {
    int num = 10;
    if (num > 5) {
        printf("数字大于 5\n");
    }
    return 0;
}

在这个例子中,变量 num 的值为 10,num > 5 条件为真,因此会输出 "数字大于 5"。

三、if - else 语句

  3.1 语法结构:

if (condition) {
    // 当 condition 为真(非0)时执行的代码块
} else {
    // 当 condition 为假(0)时执行的代码块
}

        与 if 语句不同,if - else 语句提供了两种分支选择。当 condition 为真时,执行 if 后面大括号内的代码块;当 condition 为假时,执行 else 后面大括号内的代码块。

 3.2 执行流程:

         程序计算 condition 的值,若为真,执行 if 代码块;若为假,执行 else 代码块。无论哪种情况,执行完相应代码块后,都会继续执行 if - else 语句之后的代码。

 3.3 示例代码:

#include 
int main() {
    int num = 3;
    if (num > 5) {
        printf("数字大于 5\n");
    } else {
        printf("数字小于或等于 5\n");
    }
    return 0;
}

此例中,num 的值为 3num > 5 条件为假,所以输出 "数字小于或等于 5"。

四、if - else if - else 语句

  4.1 语法结构:

if (condition1) {
    // 当 condition1 为真(非0)时执行的代码块
} else if (condition2) {
    // 当 condition1 为假且 condition2 为真时执行的代码块
} else if (condition3) {
    // 当 condition1 和 condition2 都为假且 condition3 为真时执行的代码块
} else {
    // 当所有条件都为假时执行的代码块
}

        这种结构可以处理多个条件的判断。程序会依次计算 condition1condition2condition3 等条件的值,一旦某个条件为真,就执行对应的代码块,然后跳出整个 if - else if - else 结构。如果所有条件都为假,则执行 else 后面的代码块。

  4.2 执行流程:

        从 condition1 开始计算,若为真,执行对应代码块并结束结构;若为假,继续计算 condition2,以此类推。若所有条件都为假,执行 else 代码块。

  4.3 示例代码:

#include 
int main() {
    int score = 75;
    if (score >= 90) {
        printf("成绩等级为 A\n");
    } else if (score >= 80) {
        printf("成绩等级为 B\n");
    } else if (score >= 70) {
        printf("成绩等级为 C\n");
    } else if (score >= 60) {
        printf("成绩等级为 D\n");
    } else {
        printf("成绩等级为 F\n");
    }
    return 0;
}

        这里 score 75score >= 70 条件为真,所以输出 "成绩等级为 C"。

五、switch - case 语句

  5.1 语法结构:

switch (expression) {
    case constant1:
        // 当 expression 的值等于 constant1 时执行的代码块
        break;
    case constant2:
        // 当 expression 的值等于 constant2 时执行的代码块
        break;
    // 可以有多个 case 分支
    default:
        // 当 expression 的值与所有 case 常量都不相等时执行的代码块
}

        expression 是一个表达式,其结果会与各个 case 后面的常量进行比较。如果找到匹配的 case,则执行该 case 后面的代码块,直到遇到 break 语句或 switch 结构结束。default 分支是可选的,当 expression 的值与所有 case 常量都不匹配时,执行 default 后面的代码块。

  5.2 执行流程:

        计算 expression 的值,然后依次与各 case 常量比较。若找到匹配,执行对应代码块,遇到 break 跳出 switch;若都不匹配且有 default,执行 default 代码块。

  5.3 示例代码:

#include 
int main() {
    int day = 3;
    switch (day) {
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;
        case 4:
            printf("星期四\n");
            break;
        case 5:
            printf("星期五\n");
            break;
        case 6:
            printf("星期六\n");
            break;
        case 7:
            printf("星期日\n");
            break;
        default:
            printf("无效的日期\n");
    }
    return 0;
}

由于 day 的值为 3,所以会输出 "星期三"。

六、判断结构的嵌套

        在 C 语言中,判断结构可以相互嵌套,即在一个判断结构的代码块内再使用另一个判断结构。例如:

#include 
int main() {
    int num = 15;
    if (num > 10) {
        if (num < 20) {
            printf("数字在 10 到 20 之间\n");
        }
    }
    return 0;
}

此例中,先判断 num > 10,若为真,再在内部 if 语句中判断 num < 20,若也为真,则输出 "数字在 1020 之间"。

你可能感兴趣的:(c语言,c++,开发语言)