不加break会怎样
观察下面的代码:
第一段代码是最常见的写法,也是最好的写法,约定俗成的每个条件语句后添加break。如果因为某种原因没有写break语句,没有对此情况进行过探究的话,可能还真不知道第二、三段代码会输出什么。
结论:如果不加break,程序从匹配成功的case语句开始,一直到遇见break语句或者执行完成所以条件语句块后才会跳出判断,不管后面的case语句是否匹配成功都会执行语句块中的代码,也就是上面的第二、三段代码。
有时候会故意缺省break语句来达到某种效果(例如几种判断都执行相同的代码块),不过这种情况极少,比如下面这个并没有太大意义的例子,当检测到当前月份是1、2、3、4月时都会输出“现在是第一季度”:
switch (month){
case 1: