switch语句在匹配的时候, 始终是最后一个匹配项。
不管default放在什么位置,它总是在最后一个匹配,然后继续向下处理
如果default语句放在最后, 则是否加break语句无所谓。
但是,如果default不是在最后,会是什么情况:
1、 default后有break语句, 如果匹配测话, 执行相应的case, 没有匹配项, 则执行default语句,并正常跳出switch。
2、 default后无break语句, 如果匹配测话, 执行相应的case, 没有匹配项, 则执行default语句,并继续执行执行下一个case。
所以default是始终是最后一个匹配, 但并不是最后一个执行
例1:
结果:
i==2:
two
分析:匹配成功,执行了对应的case, default没有执行
例2:
结果:
i==9:
default
zero
分析:匹配失败,先执行default, 由于default后无break语句, 所以继续执行了case 1。