DISPATCH TRACE · 入口只定位一次

Java switch 执行轨迹实验室

选择器先求值一次,再定位入口标签。传统冒号写法可能从入口向下贯穿;箭头写法则只执行命中的一条规则。

switch 模式
传统模式终止策略

开启:命中分支执行后立即离开 switch。

逐行代码轨迹

冒号 case · 有 break

    分支状态

    case 1 基础权限 未执行
    case 2 编辑权限 未执行
    case 3 管理权限 未执行
    default 未知级别 未执行

    中文执行轨迹

    完整运行

      switch 表达式直接产生一个值

      这里每条箭头规则只是一个简单表达式,因此直接写右侧值即可,不需要 yield;箭头规则不会贯穿。

      String role = switch (level) {
          case 1 -> "基础";
          case 2 -> "编辑";
          case 3 -> "管理";
          default -> "未知";
      };
      level = 2 时,role 为 "编辑"

      贯穿可以刻意使用

      传统冒号分支有时会借贯穿复用后续动作,但应写清楚注释,避免读者把遗漏 break 当成意外。

      箭头规则不会贯穿

      命中某条 case ... -> 后只执行这一支,不需要用 break 阻止落入下一支。

      default 不是 null 兜底

      default 处理的是没有匹配标签的值。这里若 level 来自可为 null 的 Integer,进入普通整数 switch 前应先明确处理 null。