switch
语句是一个很容易忽略的语法点,在表达式支持的类型上也犯过很多错,今天就来整理一下
switch语句基本定义:
代码语言:javascript复制switch (表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n 1;
break;
}
break在switch语句中的作用
关于break
在switch
语句的使用可以参考这篇博客https://cloud.tencent.com/developer/article/2342385
表达式的取值
表达式的取值类型
- 在JDK6及以前,表达式只能是一个常量表达式或枚举常量。所以表达式的取值可以是:
byte
、short
、int
、char
四种基本类型,以及其包装类型Enum
枚举类型
- 在JDK7以后新增支持String类型
编译器对表达式取值的处理
虽然随着JDK版本迭代,支持的新类型越来越多,但是在编译的字节码层次,switch
语句还是只能支持基本的四种类型。
基本类型的处理
int
**数据类型**
int a = 2;
switch (a)
{
case 1:
System.out.println("first");
break;
case 2:
System.out.println("second");
break;
case 3:
System.out.println("second");
break;
default:
System.out.println("null");
break;
}
反编译后的代码
代码语言:javascript复制byte byte0 = 2;
switch (byte0)
{
case 1: // '