switch case语句以及应用
switch case 是一种多分支条件语句,它根据不同的输入值,执行不同的操作。当if else 分支较多时,使用switch case 语句通替代可以使代码更加简洁,也更易于理解。
- case后面只能是常量,不能是变量,而且多个case后面的值不能出现相同的。
- case后面的表达式可以接受:基本数据类型,byte,short,char,int;引用数据类型可以接受枚举(JDK1.5),String字符串(JDK1.7)。
switch case语句
switch case的一般形式如下:
switch (表达式)
{
case 常量表达式1: 语句1
case 常量表达式2: 语句2
.
.
.
case 常量表达式n: 语句n
default: 语句n+1
}
switch case的应用如下:
public static void switchCaseTest() {
String season = "Spring";
switch (season) {
case "Spring":
System.out.println("Spring是:" + 3 + "," + 4 + "," + 5 + "月份");
break;
case "Summer":
System.out.println("Summer是:" + 6 + "," + 7 + "," + 8 + "月份");
break;
case "Autumn":
System.out.println("Autumn是:" + 9 + "," + 10 + "," + 11 + "月份");
break;
case "Winter":
System.out.println("Winter是:" + 12 + "," + 1 + "," + 2 + "月份");
break;
default:
System.out.println("没有这个季节!");
}
}
case穿透现象
case穿透:在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,语句接着向下运行,直到遇到break,或者整体switch语句结束。
输入一个数字(1-7)星期,判断是工作日还是休息日,
不使用case穿透 输出判断结果是工作日还是休息日:
public static void switchCaseTest2() {
int week = 1;
//用switch进行判断
switch (week) {
case 1:
System.out.println("工作日");
break;
case 2:
System.out.println("工作日");
break;
case 3:
System.out.println("工作日");
break;
case 4:
System.out.println("工作日");
break;
case 5:
System.out.println("工作日");
break;
case 6:
System.out.println("休息日");
break;
case 7:
System.out.println("休息日");
break;
default:
System.out.println("没有这个星期!");
}
}
输入一个数字(1-7)星期,判断是工作日还是休息日,
使用case穿透 输出判断结果是工作日还是休息日:
public static void switchCaseTest2() {
int week = 6;
//用switch进行判断
switch (week) {
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("工作日");
break;
case 6:
case 7:
System.out.println("休息日");
break;
default:
System.out.println("没有这个星期!");
}
}