switch语句穿透现象

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;
		}
	}
复制代码

猜你喜欢

转载自juejin.im/post/7104550652780478501