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

C语言选择结构(分支结构)有哪些?

C语言中的选择结构是一种控制流语句,它允许程序根据不同条件执行不同的代码块。这种结构使得程序能够根据不同的情况做出不同决策,从而实现更加灵活和智能的行为。
 

C语言中主要有三种选择结构:if 语句、if-else 语句和 switch 语句,每种结构都有其独特的特点和适用场景。我们将逐一介绍这些结构的语法、用法以及它们之间的区别。

1. if 语句

if 语句是最基本的选择结构,它用于在满足特定条件时执行一段代码。if 语句的基本语法如下:

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

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


让我们看一个简单的例子:

#include <stdio.h>

int main() {
    int age = 18;

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

    return 0;
}
输出结果:
你已经成年了。

在这个例子中,如果 age 变量的值大于或等于 18,程序就会打印 "你已经成年了。" 的消息。

2. if-else 语句

if-else 语句是 if 语句的扩展,它允许我们在条件不满足时执行另一段代码。if-else 语句的基本语法如下:

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

这种结构使得程序能够在两种不同的情况下执行不同的操作。让我们看一个例子:

#include <stdio.h>

int main() {
    int score = 75;

    if (score >= 60) {
        printf("恭喜你及格了!\n");
    } else {
        printf("很遗憾,你没有及格。\n");
    }

    return 0;
}
输出结果:
恭喜你及格了!

在这个例子中,如果 score 大于或等于 60,程序会打印 "恭喜你及格了!";否则,它会打印 "很遗憾,你没有及格。"


我们还可以使用 if-else if-else 结构来处理多个条件:

#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-else if-else 结构。

3. switch 语句

switch 语句是另一种选择结构,它特别适用于根据一个变量的不同值执行不同操作的情况。switch 语句的基本语法如下:

switch (表达式) {
    case 常量1:
        // 如果表达式等于常量1,执行这里的代码
        break;
    case 常量2:
        // 如果表达式等于常量2,执行这里的代码
        break;
    // 可以有更多的 case
    default:
        // 如果表达式不等于任何 case 中的常量,执行这里的代码
}

switch 语句会计算表达式的值,然后将结果与各个 case 后面的常量进行比较。如果找到匹配的 case,就执行该 case 下的代码,直到遇到 break 语句或者 switch 语句结束。如果没有匹配的 case,则执行 default 部分的代码(如果有的话)。
 

下面是一个使用 switch 语句的例子:

#include <stdio.h>

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;
}
输出结果:
星期三

在这个例子中,switch 语句根据 day 变量的值选择相应的 case,然后打印对应的星期几。如果 day 的值不在 1 到 7 之间,就会执行 default 部分的代码。
 

需要注意的是,如果在 case 中忘记使用 break 语句,程序会继续执行下一个 case 中的代码,这种行为称为 "fall through"。有时这可能是有意为之,但更多情况下是一个常见的错误。
 

总的来说,选择结构是C语言中非常重要的语法,它使得程序能够根据不同的条件执行不同的操作,从而实现更加复杂和灵活的逻辑。

相关文章