- C
C语言多分支结构教程 多分支结构 `if - else if` 概述
- 2025-3-24 12:05:00 @
C语言多分支结构教程
1. 多分支结构 if - else if
概述
在C语言里,if - else if
结构属于多分支选择结构,其作用是依据不同条件来执行不同的代码块。当需要对多个条件进行判断时,就能运用该结构。它会按照从上到下的顺序依次判断各个条件,一旦某个条件为真,就执行与之对应的代码块,并且不再对后续条件进行判断;若所有条件都为假,可选择性地执行 else
后的代码块。
2. 语法结构
if (条件表达式1) {
// 当条件表达式1为真时执行的代码块
语句块1;
} else if (条件表达式2) {
// 当条件表达式1为假且条件表达式2为真时执行的代码块
语句块2;
} else if (条件表达式3) {
// 当条件表达式1和2都为假且条件表达式3为真时执行的代码块
语句块3;
}
// 可以有更多的 else if 分支
else {
// 当所有条件表达式都为假时执行的代码块
语句块n;
}
3. 执行流程
- 首先对
条件表达式1
进行求值判断。若其值为真(非零),则执行语句块1
,然后跳过后续的else if
和else
部分,继续执行整个if - else if
结构之后的代码。 - 若
条件表达式1
的值为假(零),则接着对条件表达式2
进行判断。若为真,则执行语句块2
,同样跳过后续的else if
和else
部分。 - 依此类推,按顺序依次判断各个
else if
后面的条件表达式。 - 若所有的条件表达式都为假,且存在
else
部分,则执行else
后面的语句块n
。
4. 示例代码及详细解释
示例1:根据成绩输出等级
#include <stdio.h>
int main() {
int score;
// 提示用户输入成绩
printf("请输入你的成绩(0 - 100):");
// 从标准输入读取用户输入的成绩
scanf("%d", &score);
// 判断成绩是否在 90 - 100 之间
if (score >= 90 && score <= 100) {
// 若条件为真,输出优秀
printf("你的成绩等级是:优秀\n");
// 判断成绩是否在 80 - 89 之间
} else if (score >= 80 && score < 90) {
// 若条件为真,输出良好
printf("你的成绩等级是:良好\n");
// 判断成绩是否在 70 - 79 之间
} else if (score >= 70 && score < 80) {
// 若条件为真,输出中等
printf("你的成绩等级是:中等\n");
// 判断成绩是否在 60 - 69 之间
} else if (score >= 60 && score < 70) {
// 若条件为真,输出及格
printf("你的成绩等级是:及格\n");
// 判断成绩是否在 0 - 59 之间
} else if (score >= 0 && score < 60) {
// 若条件为真,输出不及格
printf("你的成绩等级是:不及格\n");
} else {
// 若输入的成绩不在 0 - 100 范围内,输出输入无效
printf("输入无效,请输入 0 - 100 之间的成绩。\n");
}
return 0;
}
- 代码解释:
- 代码开头的
#include <stdio.h>
用于引入标准输入输出库,这样就能使用printf
和scanf
函数。 - 在
main
函数中,先定义一个整型变量score
来存储用户输入的成绩。 - 借助
printf
函数提示用户输入成绩,再使用scanf
函数读取用户输入的值并赋给score
。 - 运用
if - else if
结构对score
进行判断,依据不同的成绩区间输出对应的等级。若输入的成绩不在 0 - 100 这个有效范围内,就执行else
部分,提示用户输入无效。
- 代码开头的
示例2:判断一个数的正负性和是否为零
#include <stdio.h>
int main() {
int num;
// 提示用户输入一个整数
printf("请输入一个整数:");
// 从标准输入读取用户输入的整数
scanf("%d", &num);
// 判断 num 是否大于 0
if (num > 0) {
// 若条件为真,输出正数
printf("%d 是正数。\n", num);
// 判断 num 是否小于 0
} else if (num < 0) {
// 若条件为真,输出负数
printf("%d 是负数。\n", num);
} else {
// 若 num 既不大于 0 也不小于 0,即 num 为 0,输出零
printf("%d 是零。\n", num);
}
return 0;
}
- 代码解释:
- 同样先引入标准输入输出库。
- 在
main
函数中定义整型变量num
以存储用户输入的整数。 - 利用
printf
提示用户输入整数,再通过scanf
读取输入的值。 - 通过
if - else if
结构判断num
的正负性和是否为零,并输出相应的结果。
5. 使用注意事项
- 条件表达式的顺序:要保证条件表达式按照合理的顺序排列,因为一旦某个条件为真,就会执行对应的代码块并跳过后续条件判断。所以通常将可能性较大或范围较小的条件放在前面。
- 逻辑完整性:要确保所有可能的情况都被涵盖,特别是在使用
else
部分时,若遗漏某些情况可能会导致程序出现意外结果。 - 花括号的使用:尽管当语句块只有一条语句时可以省略花括号,但为了增强代码的可读性和可维护性,建议始终使用花括号。
0 条评论
目前还没有评论...