C语言switch case
时间: 2025-01-07 11:43:51 浏览: 28
C语言 switch
语句概述
switch
是一种多分支选择结构,在C语言中用于根据变量的不同取值来执行不同的操作。相比嵌套的 if...else
结构,当条件判断较多时,使用 switch
可使代码更加简洁易读[^2]。
基本语法格式
switch (expression) {
case constant-expression :
statement(s);
break; /* optional */
/* you can have any number of case statements */
default : /* Optional */
statement(s);
}
- 表达式的计算结果必须是一个整数或字符型数据。
- 每个
case
后跟一个常量表达式以及要被执行的一条或多条语句。 - 当某个
case
的常量表达式与switch
中的表达式相等,则会执行该case
下的所有语句直到遇到break
或者到达另一个case
/default
分支。 - 如果没有任何
case
符合条件而存在default
标签的话,默认情况下将执行其下的指令序列;若既无匹配项又未定义默认处理逻辑则不会有任何动作发生[^3]。
实际应用举例
示例一:基本用法
假设有一个简单的菜单驱动程序,允许用户输入数字以选择不同选项:
#include <stdio.h>
int main() {
int choice;
printf("Enter your choice: ");
scanf("%d", &choice);
switch(choice){
case 1:
printf("You selected option one.\n");
break;
case 2:
printf("You selected option two.\n");
break;
case 3:
printf("You selected option three.\n");
break;
default:
printf("Invalid selection!\n");
}
return 0;
}
此段代码展示了如何利用 switch
来实现基于用户输入的选择机制[^1]。
示例二:带有范围检测的情况
有时可能希望针对特定范围内数值作出响应,虽然标准C不支持直接在 case
上指定区间,但是可以通过组合多个 case
和适当安排顺序达到类似效果:
#include <stdio.h>
int main(){
char grade;
printf("Input a letter grade(A-F): ");
scanf("%c",&grade);
switch(grade){
case 'A':
printf("Excellent\n");
break;
case 'B':
case 'C':
printf("Well done\n");
break;
case 'D':
printf("You passed\n");
break;
case 'F':
printf("Better try again\n");
break;
default:
printf("Invalid grade\n");
}
return 0;
}
这里通过连续声明相同行为对应的 case
,实现了对于一系列相邻情况统一处理的效果。
相关推荐

















