case语句后需要添加break,否则就会出现穿透现象,即穿过其他case的判断语句直至执行遇到break语句。
Scanner sc = new Scanner(System.in);
System.out.println("请输入今天是星期几?");
String str = sc.nextLine();
switch(str) {
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;
}
}
复制代码
如果switch语句中出现不同情况重复的执行语句时,可通过该特点,优化代码,提高代码利用率。 例如如下的例子。
Scanner sc = new Scanner(System.in);
System.out.println("请输入今天是星期几?");
String str = sc.nextLine();
switch(str) {
case "周一":
case "周二":
case "周三":
case "周四":
case "周五":
System.out.println("工作日");
case "周六":
case "周日":
System.out.println("休息日");
break;
default:
System.out.println("非法输入");
break;
}
}
复制代码