- 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;
}
- 代码解释:
- 定义整数变量
num
为3
。 - 在
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 if
和else
部分,继续执行整个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;
}
- 代码解释:
- 定义一个变量
day
为3
。 - 在
switch
语句中,表达式day
的值与case 3
匹配成功,所以会执行case 3
对应的语句块,输出“星期三”,然后遇到break
语句,跳出switch
语句。
- 定义一个变量
通过掌握这些选择结构的使用方法,你可以根据不同的条件让程序执行不同的操作,编写出更加灵活、功能丰富的C语言程序。 C语言选择结构教程