没有break不是都执行么,为啥跟预想的不一样没有break不是都执行么,为啥跟预想的不一样
预期是什么样呢,没有break都执行也是遇到匹配的之后,执行这次的case及以后的,之前不匹配的是不会执行的
走进default了呀,default就是其他case都不匹配的时候会进的
根据参考资料可以了解到,break语句的作用是跳出循环或条件语句,如果在某一分支内部没有加上break语句,程序将会继续执行下一个分支,直到遇到break语句或者执行完分支语句。因此,如果在if语句的内部没有加break语句,程序将会执行完if语句内所有分支的语句,而不是只执行符合条件的分支语句。
举个例子,如果有如下代码:
public static void main(String[] args){
int i = 2;
if(i == 1){
System.out.println("i is 1");
}
if(i == 2){
System.out.println("i is 2");
}
if(i == 3){
System.out.println("i is 3");
}
}
在上面的代码中,i等于2,因此只有第二个if语句的条件成立,但由于每个if语句内部都没有break语句,程序将会执行完所有分支的语句,最终输出:
i is 2
如果想要只执行符合条件的分支语句,可以在每个分支的末尾添加break语句,比如:
public static void main(String[] args){
int i = 2;
if(i == 1){
System.out.println("i is 1");
break;
}
if(i == 2){
System.out.println("i is 2");
break;
}
if(i == 3){
System.out.println("i is 3");
break;
}
}
上面的代码中,由于第二个if语句的条件成立,而且在第二个if分支末尾添加了break语句,因此只会输出一行:
i is 2
因此,当程序没有按照预期执行时,可以检查代码中是否有缺少break语句的地方。如果只是在某个分支内部缺少了break语句,可以在该分支的末尾添加break语句,如果整个循环或者条件语句内部都需要添加break语句,可以使用break语句跳出循环或条件语句。如果在某些情况下还需要返回某个结果,可以使用return关键字。