先看下面代码:
private void test(int num) {
switch (num) {
case 1:
System.out.println("==========1");
case 2:
System.out.println("==========2");
case 3:
System.out.println("==========3");
case 4:
System.out.println("==========4");
}
}
如果num == 1,,4个case语句都会执行;如果num ==2 ,会执行剩下3个语句。
原因是switch语句原理是:匹配到某个case,然后会执行剩下所有的语句,直到最后或者遇见break与return为止。
小结:
匹配到某个case,然后会执行剩下所有的语句(包括其他case里面的),直到最后或者遇见break与return为止。所以正常一对一匹配需要每一个case 后加上break,也可以刻意不加走多个case(常见场景,用于数据库增量逐级升级).