switch

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:可省略(已是最后分支),但写上更规范。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注