Java中switch语句支持byte、short、int、char、枚举、String及对应包装类,不支持long、double等;case需常量且不可重复,省略break会导致贯穿;default非必需但建议添加以增强健壮性。

switch 适用的表达式类型
表达式结果必须是以下类型之一:
- 基本整型:byte、short、int、char
- 从 Java 5 开始支持:枚举(enum)类型
- 从 Java 7 开始支持:String 类型(注意:是字符串字面量或不可变字符串变量,内部靠
hashCode()+equals()判断) - 对应包装类:Byte、Short、Character、Integer、String、Enum(自动拆箱/判空需小心)
不支持 long、double、float、boolean 或普通对象——如果硬要用,得先强制转成允许类型(比如 (int)myLong),但要注意精度丢失。
case 匹配和 break 的关键作用
每个 case 后跟一个常量(编译期确定的值),与 switch 表达式结果逐个比较。一旦匹配,就从该 case 开始向下顺序执行,直到遇到 break 或 switch 结束。
省略 break 会导致“贯穿(fall-through)”——这是设计特性,不是 bug。例如:
立即学习“Java免费学习笔记(深入)”;
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~