• C
  • C语言选择结构教程

  • @ 2025-3-24 12:00:15

在C语言中,选择结构允许程序根据条件判断的结果来执行不同的代码块,使程序具有决策能力。常见的选择结构有if语句、if-else语句、if-else if-else语句和switch语句,下面为你详细介绍:

1. if语句(单分支选择)

  • 语法格式
if(表达式) {
    语句块;
}

表达式通常是一个关系表达式或逻辑表达式,也可以是任意的数值表达式。在C语言中,非零值表示真,零值表示假。当表达式的值为真时,就会执行花括号内的语句块;如果表达式的值为假,则跳过语句块,继续执行后面的代码。当语句块只有一条语句时,花括号可以省略,但为了增强代码的可读性和可维护性,一般建议保留。

  • 示例代码
#include <stdio.h>

int main() {
    int num = 10;
    if (num > 5) {  // 判断num是否大于5
        printf("这个数大于5\n");  // 如果条件为真,执行该语句
    }
    return 0;
}
  • 代码解释
    • 首先定义了一个整型变量num并赋值为10
    • 然后在if语句中,条件表达式num > 5的值为真(因为10 > 5),所以会执行花括号内的printf语句,在屏幕上输出“这个数大于5”。

2. if-else语句(双分支选择)

  • 语法格式
if(表达式) {
    语句块1;
} else {
    语句块2;
}

当表达式的值为真时,执行语句块1;当表达式的值为假时,执行语句块2。这样可以根据条件在两个不同的操作之间进行选择。

  • 示例代码
#include <stdio.h>

int main() {
    int num = 3;
    if (num > 5) {  // 判断num是否大于5
        printf("这个数大于5\n");  // 条件为真时执行
    } else {
        printf("这个数小于等于5\n");  // 条件为假时执行
    }
    return 0;
}
  • 代码解释
    • 定义整数变量num3
    • if-else语句中,条件表达式num > 5的值为假,所以会执行else部分的语句块,输出“这个数小于等于5”。

3. if-else if-else语句(多分支选择)

  • 语法格式
if(表达式1) {
    语句块1;
} else if(表达式2) {
    语句块2;
} else if(表达式3) {
    语句块3;
} 
...
else {
    语句块n;
}

用于处理多种不同的条件情况。程序首先判断表达式1,如果为真则执行语句块1,然后跳过后续所有的else ifelse部分,继续执行整个if-else if-else结构后面的代码;如果表达式1的值为假,则接着判断表达式2,如果为真则执行语句块2,以此类推。如果所有的条件表达式都为假,且存在else部分,则执行语句块n。else部分可以省略。

  • 示例代码:根据成绩划分等级
#include <stdio.h>

int main() {
    int score;
    printf("请输入学生成绩:");
    scanf("%d", &score);  // 获取用户输入的成绩
    if (score >= 90) {
        printf("优秀\n");
    } else if (score >= 80) {
        printf("良好\n");
    } else if (score >= 70) {
        printf("中等\n");
    } else if (score >= 60) {
        printf("及格\n");
    } else {
        printf("不及格\n");
    }
    return 0;
}
  • 代码解释
    • 首先通过scanf()函数获取用户输入的学生成绩score
    • 然后按照从高分到低分的顺序依次判断成绩所属的等级。如果成绩大于等于90,则输出“优秀”;如果成绩小于90但大于等于80,则输出“良好”,以此类推。如果成绩小于60,则输出“不及格”。

4. switch语句(多分支选择)

  • 语法格式
switch(表达式) {
    case 常量表达式1:
        语句块1;
        break;
    case 常量表达式2:
        语句块2;
        break;
   ...
    case 常量表达式n:
        语句块n;
        break;
    default:
        语句块n+1;
}

switch后的表达式的值通常是整型或字符型;case后面跟的是常量表达式,其值必须是唯一的;break语句用于在执行完相应的语句块后跳出switch结构,如果没有break,程序会继续执行下一个case分支的语句,直到遇到break或者switch语句结束;default分支是可选的,当表达式的值与所有case常量表达式的值都不匹配时,会执行default后的语句块。

  • 示例代码:输出星期几
#include <stdio.h>

int main() {
    int day = 3;
    switch (day) {  // 根据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;
}
  • 代码解释
    • 定义一个变量day3
    • switch语句中,表达式day的值与case 3匹配成功,所以会执行case 3对应的语句块,输出“星期三”,然后遇到break语句,跳出switch语句。

通过掌握这些选择结构的使用方法,你可以根据不同的条件让程序执行不同的操作,编写出更加灵活、功能丰富的C语言程序。 C语言选择结构教程

0 条评论

目前还没有评论...