java中switch关键字介绍
⼀直对switch语句的使⽤不是很熟悉,最近空下来整理⼀下。
switch语句格式如下:
switch(变量) {
case 值 1 : 语句; break;
case 值 2 : 语句; break;
case 值 3 : 语句; break;
case 值 4 : 语句; break;
case 值 5 : 语句; break;
default:语句;
}
⼀、switch⽀持的数据类型:
JDK1.5之前,switch循环只⽀持char、byte、short、int四种数据类型。
JDK1.5开始,switch循环中增加了枚举类与byte short char int的包装类,对四个包装类的⽀持是因为java编译器在底层⼿动进⾏拆箱,⽽对枚举类的⽀持是因为枚举类有⼀个ordinal⽅法,该⽅法实际上是⼀个int类型的数值。JDK1.5之后⽀持的类型:char、byte、short、int 、Character、Byte、Short、Integer 、枚举。
JDK1.7开始,switch循环⽀持String类型,但实际上String类型有⼀个hashCode算法,结果也是int类型.⽽byte short char类型可以在不损失精度的情况下向上转型成int类型.所以总的来说,可以认为switch中只⽀持int。JDK1.7之后⽀持的类型:char、byte、short、int 、Character、Byte、Short、Integer 、String、枚举。
注:switch中,表达式不能为空,为空会抛出NullPointerException。case项即不能为空也不能重复,这两种情况都会出现编译错误。
⼆、switch语句格式介绍:
1、case后的语句可以不⽤⼤括号括起来;
2、每个 case 均以⼀个 break 结尾。这样可使 执⾏流程跳转⾄ switch 主体的末尾。这是构建 switch 语句的⼀种传统⽅式,但break 是可选的。若省略 break,会继续执⾏后⾯的 case 语句中的代码,直到遇到 ⼀个 break 为⽌,这种情况容易造成混淆,但也可以将这⼀特性善加利⽤。如:多个case共同处理同⼀块代码。
1)case语句中不加break关键字:
int i = 2;
switch (i){
case 1:
System.out.println("i=1");
case 2:
System.out.println("i=2");
case 3:
System.out.println("i=3");
case 4:
System.out.println("i=4");
default:
System.out.println("i=default");
}
以上代码输出的结果为:
i=2
i=3
i=4
i=default
2)case语句中加break关键字:
System.out.println("i=1");break;
case 2:
System.out.println("i=2");break;
case 3:
System.out.println("i=3");break;
case 4:
System.out.println("i=4");break;
default:
System.out.println("i=default");
}
以上代码输出的结果为:
i=2
3、若case中没有发现相符的,就执⾏ default 语句。最后的 default 语句没有 break,因为执⾏流程已到了 switch 主体的末尾。不过如果考虑到编程风格⽅⾯的原因,也可以在 default 语句的末尾放置⼀个 break,虽然它并没有任何实际的⽤处。
第⼀种情况:
int i = 5;
switch (i){
case 1:
System.out.println("i=1");
case 2:
System.out.println("i=2");
case 3:
System.out.println("i=3");
case 4:
System.out.println("i=4");
default:
System.out.println("i=default");
}
第⼆种情况:
int i = 5;
switch (i){
case 1:
System.out.println("i=1");break;
case 2:
System.out.println("i=2");break;
case 3:
System.out.println("i=3");break;
case 4:
System.out.println("i=4");break;
default:
System.out.println("i=default");
}
以上代码中的两种情况,输出结果均为:
i=default
4、语句的执⾏结果也受default语句的位置有关(这是⽐较特殊的)。
1) 第⼀种情况
System.out.println("i=1");
case 2:
System.out.println("i=2");
default:
System.out.println("i=default");
case 3:
java switch case string
System.out.println("i=3");
case 4:
System.out.println("i=4");
}
以上代码的输出结果为:
i=default
i=3
i=4
2) 第⼆种情况
int i = 5;
switch (i){
case 1:
System.out.println("i=1");break;
case 2:
System.out.println("i=2");break;
default:
System.out.println("i=default");break;  case 3:
System.out.println("i=3");break;
case 4:
System.out.println("i=4");break;
}
以上代码的输出结果为:
i=default

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。