1. 核心语法与执行规则
switch 语句根据一个整数表达式的结果,从一组固定的常量选项中选择执行路径。
基本结构:
switch(整型表达式) {
case 常量1:
// 语句块
break;
case 常量2:
// 语句块
break;
default:
// 未匹配时的默认语句
break;
}Code language: JavaScript (javascript)
执行流程:
- 计算
switch括号内的整型值(如ticket)。 - 依次与
case后的常量值严格匹配(等值匹配)。 - 匹配成功则从该
case向下执行,遇到break跳出整个switch。 - 全部未匹配则执行
default(若存在)。
2. 彩票中奖示例解析
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int ticket = 0;
printf("请输入一个整数数字:");
scanf("%d",&ticket);
switch(ticket)
{
case 35:
printf("\n恭喜你,中的一等奖");
break;
case 122:
printf("\n恭喜你,中的二等奖");
break;
case 78:
printf("\n恭喜你,中的三等奖");
break;
default:
printf("\n抱歉,没有中奖,请下次再试。");
break;
}
return 0;
}Code language: PHP (php)
说明:输入 122 时精准匹配 case 122,输出二等奖后 break 退出。若输入其他数字,走 default 提示未中奖。
3. break 与穿透
break作用:跳出switch块,防止继续执行后续case。- 省略
break的穿透现象:
case 35:
printf("\n一等奖");
// 无 break,继续往下执行 case 122 的语句
case 122:
printf("\n二等奖");
break;Code language: JavaScript (javascript)
若输入 35,会同时输出“一等奖”和“二等奖”。刻意利用穿透可实现多值共用一段逻辑(如 case 1: case 2: printf("低等级"); break;),但日常建议每个 case 配 break 防误判。
default的break:可省略(已是最后分支),但写上更规范。
Previous: 多路选择结构
Next: 练习:使用 switch 语句实现幸运数字抽奖