- C
C语言多分支结构教程
- 2025-3-24 12:03:23 @
在C语言中,多分支结构可以让程序根据不同的条件执行不同的代码块,常见的实现方式有 if - else if - else
语句和 switch
语句。下面将分别详细介绍这两种多分支结构。
1. if - else if - else
语句
1.1 语法结构
if (表达式1) {
语句块1;
} else if (表达式2) {
语句块2;
} else if (表达式3) {
语句块3;
}
// 可以有更多的 else if 分支
else {
语句块n;
}
- 表达式:可以是关系表达式、逻辑表达式等,用于判断条件是否成立。
- 语句块:当对应的表达式为真(非零)时,执行该语句块。
- 执行流程:程序首先计算
表达式1
,如果为真,则执行语句块1
,然后跳过后续的else if
和else
部分;如果表达式1
为假,则计算表达式2
,若为真则执行语句块2
,以此类推;如果所有的表达式
都为假,则执行else
后的语句块n
。else
部分是可选的。
1.2 示例代码及解释
#include <stdio.h>
int main() {
int score;
// 提示用户输入成绩
printf("请输入你的成绩: ");
// 读取用户输入的成绩
scanf("%d", &score);
if (score >= 90) {
// 成绩大于等于 90 分,输出优秀
printf("优秀\n");
} else if (score >= 80) {
// 成绩大于等于 80 分且小于 90 分,输出良好
printf("良好\n");
} else if (score >= 70) {
// 成绩大于等于 70 分且小于 80 分,输出中等
printf("中等\n");
} else if (score >= 60) {
// 成绩大于等于 60 分且小于 70 分,输出及格
printf("及格\n");
} else {
// 成绩小于 60 分,输出不及格
printf("不及格\n");
}
return 0;
}
- 代码解释:
- 首先,通过
#include <stdio.h>
引入标准输入输出库,以便使用printf
和scanf
函数。 - 在
main
函数中,定义一个整型变量score
用于存储用户输入的成绩。 - 使用
printf
提示用户输入成绩,然后使用scanf
读取用户输入的成绩。 - 通过一系列的
if - else if - else
语句,根据成绩的不同范围输出相应的评价。
- 首先,通过
2. switch
语句
2.1 语法结构
switch (表达式) {
case 常量表达式1:
语句块1;
break;
case 常量表达式2:
语句块2;
break;
// 可以有更多的 case 分支
default:
语句块n;
}
- 表达式:其值必须是整型或字符型。
- 常量表达式:必须是整型常量或字符常量,且每个
case
后的常量表达式的值必须唯一。 break
语句:用于跳出switch
语句。如果没有break
,程序会继续执行下一个case
分支的语句,直到遇到break
或switch
语句结束。default
分支:是可选的,当表达式
的值与所有case
后的常量表达式的值都不匹配时,执行default
后的语句块。
2.2 示例代码及解释
#include <stdio.h>
int main() {
int day;
// 提示用户输入一个 1 - 7 的整数
printf("请输入一个 1 - 7 的整数: ");
// 读取用户输入的整数
scanf("%d", &day);
switch (day) {
case 1:
// 输入为 1,输出星期一
printf("星期一\n");
break;
case 2:
// 输入为 2,输出星期二
printf("星期二\n");
break;
case 3:
// 输入为 3,输出星期三
printf("星期三\n");
break;
case 4:
// 输入为 4,输出星期四
printf("星期四\n");
break;
case 5:
// 输入为 5,输出星期五
printf("星期五\n");
break;
case 6:
// 输入为 6,输出星期六
printf("星期六\n");
break;
case 7:
// 输入为 7,输出星期日
printf("星期日\n");
break;
default:
// 输入不在 1 - 7 范围内,输出无效输入
printf("无效输入\n");
}
return 0;
}
- 代码解释:
- 同样先引入标准输入输出库。
- 在
main
函数中,定义一个整型变量day
用于存储用户输入的整数。 - 使用
printf
提示用户输入一个 1 - 7 的整数,然后使用scanf
读取用户输入的整数。 - 通过
switch
语句,根据day
的值输出对应的星期几,如果输入的值不在 1 - 7 范围内,则执行default
分支,输出“无效输入”。
3. if - else if - else
与 switch
的比较
if - else if - else
:适用于条件判断较为复杂,条件不是离散的常量值,而是基于范围或逻辑组合的情况。switch
:适用于条件是离散的整型或字符型常量值的情况,代码结构更清晰,执行效率可能更高。
通过掌握这两种多分支结构,你可以根据不同的需求让程序在多种情况下做出不同的响应。
0 条评论
目前还没有评论...