[Java] 纯文本查看 复制代码
public class SwitchTest1 {
public static void main(String[] args) {
String sa = "a";
String sb = "b";
String sc = "c";
//常规用法,输出"a",先判断case "a"为true,执行冒号内的语句,然后遇到break;跳出swicth。
switch(sa) {
case "a":
System.out.println("a");
break;
case "b":
System.out.println("b");
break;
default:
System.out.println("default");
}
System.out.println("---------------");
//去掉case "a":内的break;输出了"a""b",case "b":并不可能为true,
//结论:case判断为true任意一次后,忽略之后的所有case判断而直接执行其中的内容
switch(sa) {
case "a":
System.out.println("a");
case "b":
System.out.println("b");
break;
default:
System.out.println("default");
}
System.out.println("---------------");
//去掉case "a":和case "b":内的break;输出了"a""b""default",case "b":以及default:并不可能为true,
//结论:case判断为true任意一次后,忽略之后的所有case判断以及default判断而直接执行其中的内容
switch(sa) {
case "a":
System.out.println("a");
case "b":
System.out.println("b");
default:
System.out.println("default");
}
System.out.println("---------------");
//输出了"a""b"
//结论:验证之前结论的同时,也证明了case判断成功后,不会去寻找default语句执行。
switch(sa) {
default:
System.out.println("default");
case "a":
System.out.println("a");
case "b":
System.out.println("b");
}
System.out.println("---------------");
//输出了"default""a""b"
//结论:验证之前结论的同时,也证明了所有的case判断失败后,会去寻找default语句执行。不论default语句在什么位置。
//**并且结合之前的结论可知,case、default语句任意一次true后,就会跳过switch内之后所有的case和default的判断,执行所有其他语句。
switch(sc) {
default:
System.out.println("default");
case "a":
System.out.println("a");
case "b":
System.out.println("b");
}
System.out.println("---------------");
}
}