https://bbs.youkuaiyun.com/topics/392154630?page=1
刚看这帖子一脸懵逼,后来总结出来了以下几点:
1、switch中 验证case是否匹配并不是按顺序来的;
2、只有碰到"break"、"大括号"才结束;
3、case中少写了break,编译可以通过。不过,会继续执行之后所有case条件下语句而不再判断。
若没有匹配的,则会直接跳到defult,然后接续执行之后的case条件下语句并不再判断。
public class Test_A {
public static void main(String[] args) {
int i=1, j=0;
switch(i) {
case 2:
j+=6;
case 4:
j+=1;
default:
j +=3;
case 0:
j +=4;
}
System.out.println("j="+j);
}
}
输出:j=7
若i=2 则 输出:j=14
然后就是等以后空下来了 了解一下 “通过汇编码理解switch语句的原理”:
http://blog.youkuaiyun.com/cleanfield/article/details/6224769
http://blog.youkuaiyun.com/wenpinglaoyao/article/details/51099553