说明
- 根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case机构中的执行语句,知道遇到break关键字或此swith-case结构末尾结束为止。
- break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出swith-case结构。
- switch结构中的表达式,只能是如下的六种类型之一:byte、short、char、int、枚举类型(JDK5.0 新增)、String类型。
- case之后只能声明常量,不能声明范围。
- default:相当于if-else结构中的else。
default结构式可选的。
程序1(int型)
class SwithCaseTest{
public static void main(String[] args){
int number = 2;
switch (number){
case 0:
System.out.println("zero");
case 1:
System.out.println("one");
case 2:
System.out.println("two");
case 3:
System.out.println("three");
default:
System.out.println("other");
}
}
}
结果1
程序2(int型)
class SwithCaseTest{
public static void main(String[] args){
int number = 2;
switch (number){
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3:
System.out.println("three");
break;
default:
System.out.println("other");
}
}
}
结果2
程序段3(boolean不可以)
boolean isHandsome = true;
switch (isHandsome){
case true:
System.out.println("我好帅啊!!");
break;
case false:
System.out.println("我好丑啊!!");
break;
default:
System.out.println("输入有误");
}
结果
所有switch结构中的表达式,只能是如下的六种类型之一:byte、short、char、int、枚举类型(JDK5.0 新增)、String类型。不能是boolean型。
程序段4(String型)
String season = "sunmmer";
switch(season){
case "spring":
System.out.println("春暖花开");
break;
case "sunmmer":
System.out.println("夏日炎炎");
break;
case "autumn":
System.out.println("秋高气爽");
break;
case "winter":
System.out.println("冬雪皑皑");
break;
default:
System.out.println("季节输入有误");
}
结果4
程序段5(boolean不能转换为int型)
int age =10;
switch(age){
case age >18:
System.out.println("成年了");
break;
default:
System.out.println("未成年");
}
结果5
程序段6
int number = 2;
switch (number){
default:
System.out.println("other");
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3:
System.out.println("three");
break;
}
结果5
程序段7
int number = 5;
switch (number){
default:
System.out.println("other");
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3:
System.out.println("three");
break;
}
结果7
结果分析:执行default,因为没有break,继续执行case 0,输出zero。
程序段8
int number = 5;
switch (number){
default:
System.out.println("other");
break;
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
case 3:
System.out.println("three");
break;
}
结果8