在工作的这些年里我对switch是有特的感觉,感觉它就是一名舞者,给人的感觉就是优雅、没有多余的动作。
不过接下我还是说说它if的区别的:
1.switch分支选择的,但是功能远远没有if强大,有特殊用途!
2.switch可以根据给出的提示,直接跳到选项里去。不需要遍历,这就是性能好的原因。
3.做表达式值匹配的情况下建议使用switch分支来实现,性能好,代码更加优雅。
switch语句格式:
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
case 常量值3:
语句体3;
break;
...
default:
语句体n+1;
break;
}
// 程序的入口方法,执行代码的
public static void main(String[] args){
// 1.创建一个Scanner类的对象用于接收键盘的输入。
Scanner scan = new Scanner(System.in);
// 2.提示用户选择对应的信息。
System.out.print("请输入您要选择的星期编号:");
int weekday = scan.nextInt();
switch(weekday){
case 0:
System.out.println("星期日");
break;
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;
default:
System.out.println("没有其他选项");
break;
}
}
switch的穿透性
穿透性在开发中也存在一些特殊的应用场景,现在以需求的方式来介绍一下穿透性的应用场景。例如:一年分为四个季度,1-2-3月是第一季度,4-5-6是第二季度,7-8-9是第三季度,10-11-12是第四季度。现在需要实现用户输入月份号输出对应的季度信息。
// 程序的入口方法,执行代码的
public static void main(String[] args){
// 1.创建一个Scanner类的对象用于接收键盘的输入。
Scanner scan = new Scanner(System.in);
// 2.提示用户选择对应的信息。
System.out.print("请输入您的月份:");
int month = scan.nextInt();
switch(month){
case 1:
case 2:
case 3:
System.out.println("第一季度");
break;
case 4:
case 5:
case 6:
System.out.println("第二季度");
break;
case 7:
case 8:
case 9:
System.out.println("第三季度");
break;
case 10:
case 11:
case 12:
System.out.println("第四季度");
break;
default:
System.out.println("输入有误!");
break;
}