使用 switch 时碰到的一个坑
首先看一段程序。
int type=2;
switch (type){
case 1:
System.out.print(1);
case 2:
System.out.print(2);
case 3:
System.out.print(3);
}
踩过这个坑或者仔细看过 switch 语法的人都知道,上面的程序会打印出:23 ,而不是 2。因为 switch 语句会从相匹配的 case 开始执行,直到遇到 break 语句,或者执行整一个 switch 语句。如果没加 break ,则会将 2 和 3 的 case 都执行,而不是只执行匹配的 case ,所以在使用 switch 时,一定要注意加 break ,或者在 case 里 return,否则很容易出现程序错误。
在编程时,我们可以通过一些插件来提醒我们这些的错误的发生,例如 SonarLint 、Alibaba Java Coding Guidelines。