首先看一下下面这段代码
一开始我以为如果不写break,那么这段代码在判断了case 1后会只是不会跳出去,再去继续判断case 2
public static void main(String[] args) {
int a = 1;
switch (a) {
case 1:
System.out.println("1");
//break;
case 2:
System.out.println("2");
//break;
case 3:
System.out.println("3");
//break;
default:
System.out.println("default");
}
}
运行一下
可以看到它执行了所有的case ,并且不再判断值是否相等!!!
然后我去查了一下switch的语法,发现是这样的
switch语句的执行是从匹配的case标签开始,并且一旦匹配到了一个case标签,它会执行该标签下的所有语句,直到遇到break语句或者switch语句的结束
回到一开始的问题,如果我在其中一处忘了写break
执行起来就会出现下面这样问题,它执行了超出预期的代码
当然这里还是因我基础太差,在实际项目中如果不仔细就会出现异常,在这里做个记录