1.Switch基本方法
最常见的方法就是
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
}
例如
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("今天星期几?");
String days = sc.nextLine();
switch (days) {
case "星期一":
System.out.println("跑步");
break;
case "星期二":
System.out.println("游泳");
break;
case "星期三":
System.out.println("慢走");
break;
case "星期四":
System.out.println("动感单车");
break;
case "星期五":
System.out.println("拳击");
break;
case "星期六":
System.out.println("爬山");
break;
case "星期日":
System.out.println("休息一天");
break;
default:
System.out.println("没有这一天");
break;
}
}
2.case穿透
如果我们遇到好几个case,需要输出同一个结果,怎么简化代码呢?
例如:要求输入周一到周五,输出是工作日;输入周六日,输出是休息日
public static void main(String[] args) {
System.out.println("今天是周几?");
Scanner sc = new Scanner(System.in);
int day = sc.nextInt();
switch (day) {
case 1, 2, 3, 4, 5:
System.out.println("今天是工作日");
break;
case 6, 7:
System.out.println("今天是休息日");
break;
default:
System.out.println("非法输入");
break;
}
}
发生穿透的原因:语句中没有写break;语句,就会继续执行,从而发生穿透
3.箭头方法
jdk12以后,就出现了新的简单方法,case搭配箭头的方法
基本格式
switch(表达式) {
case 常量值1 -> {
语句体1;
}
case 常量值2 -> {
语句体2;
}
...
default -> {
语句体n+1;
}
}
还是上面例子,要求输入周一到周五,输出是工作日;输入周六日,输出是休息日
public static void main(String[] args) {
System.out.println("今天是周几?");
Scanner sc = new Scanner(System.in);
int day = sc.nextInt();
switch (day) {
case 1, 2, 3, 4, 5 ->
System.out.println("今天是工作日");
case 6, 7 ->
System.out.println("今天是休息日");
default ->
System.out.println("非法输入");
}
}
这个应该是最简洁的代码了。
1.当case语句中,只有一行命令时,{大括号}可以省略;有多行命令时必须带上。
2.用了箭头方法,就不用写break;语句,自己会终止。