java语言规范阅读理解-switch
Java Language Specification
Chapter 14.11
The type of the Expression must be char
, byte
, short
, int
, Character
, Byte
, Short
, Integer
, String
, or an enum type (§8.9), or a compile-time error occurs.
表达式的类型必须是char,byte,short,int或者其包装类型,String,枚举类型,也可以是一个方法,但方法计算出的结果必须是以上类型。
不能有两个case有相同的值
不能有case为null
最多只能有一个default
在switch语句被执行时,首先会计算Expression内的值,如果结果为null,会抛出ullPointerException异常,switch直接完成。除此之外,如果是引用数据类型,首先会拆包装。如果表达式抛出异常,那么switch语句不会被执行。
如果有一个case匹配,那么后面的语句将被顺序执行,包括default。如果没有匹配,但有default,那么default之后的语句也会被执行,与default的位置无关。