c语言 switchcase语句用法
时间: 2025-04-29 16:52:38 浏览: 27
### C语言 `switch`-`case` 语句概述
在C语言中,`switch`-`case` 是一种多分支选择结构,用于根据变量的不同取值来执行不同的操作。相比 `if...else` 结构,在处理多个固定值的条件判断时更为简洁和高效[^2]。
#### 基本语法格式
```c
switch (expression) {
case constant-expression:
statement(s);
break;
case constant-expression:
statement(s);
break;
...
default:
statement(s);
}
```
其中:
- `expression` 表达式的计算结果应为整数型或字符型。
- 每个 `case` 后面跟的是常量表达式,当 `expression` 的值等于该常量表达式的值时,则执行对应的语句序列。
- 如果没有任何一个 `case` 符合条件,默认情况下会执行 `default` 部分的内容;如果存在匹配项且其后有 `break` 则不会进入默认部分。
- 关键字 `break` 起着终止当前 `case` 并退出整个 `switch` 语句的作用。如果没有设置 `break` ,程序将继续向下执行直到遇到第一个 `break` 或者到达 `switch` 体结束位置[^3]。
#### 实际应用案例分析
考虑如下一段代码片段展示了一个典型的 `switch`-`case` 使用场景:
```c
#include <stdio.h>
int main() {
int num = 1;
switch (num) {
case 1:
printf("Case 1\n");
// 缺少 break 导致穿透至下一条 case 分支
case 2:
printf("Case 2\n");
case 3:
printf("Case 3\n");
case 4:
printf("Case 4\n");
break; // 此处设置了 break 来阻止进一步穿透
default:
printf("Default Case\n");
}
return 0;
}
```
上述例子展示了所谓的 “case 穿透” 效果:由于缺少 `break` 语句,一旦某个 `case` 成立之后便会一直往下执行直至遇见首个 `break` 。因此这段代码最终输出将是:“Case 1”,“Case 2”,“Case 3”,最后是“Case 4”。这正是通过省略某些地方的 `break` 达到了预期的效果[^1]。
阅读全文
相关推荐

















