你胆敢在case后面不加break试试?

简介: 你胆敢在case后面不加break试试?

我们经常在实际开发中会用到一些转换类,比如在金融界中,我们需要将1转换为“壹”,2转换成“贰”。还有类似这样的需求,食堂在一周内每天的菜单都是不一样的,周一为鱼香肉丝+鸡腿,周二为爆炒土豆丝+鲅鱼,周三为西红柿炒鸡蛋+牛肉片等等,我们可以用代码来模拟一下阿拉伯数字转换为“中国式”数字的需求:

//java实现将阿拉伯数字转换成中国式数字
  public static void testCastNum(){
    int num = 2;
    String chinaNum = "";
    switch (num) {
    case 1:
      chinaNum = "壹";
    case 2:
      chinaNum = "贰";
    case 3:
      chinaNum = "叁";
    case 4:
      chinaNum = "肆";
    case 5:
      chinaNum = "伍";
    case 6:
      chinaNum = "陆";
    case 7:
      chinaNum = "柒";
    case 8:
      chinaNum = "捌";
    case 9:
      chinaNum = "玖";
    }
    System.out.println(chinaNum);
  }

这是一个简单的不能在简单的案例,大家一看就明白,那我们运行一下,发现结果输出的是“玖”,为什么?

我们回来在看看程序,哦,原来是case后面忘记加break了,程序从case2执行完之后继续执行,chinaNum的值从“贰”、“叁”、“肆”一直到“玖”才结束,因为在switch中,自始至终都未发现break,所以就一直执行。

有人可能会质疑,这样的小儿科我是不可能烦的,错误太简单了,我只能说,你参与过的并没有太复杂,在大点的项目中蹲过坑、打过仗的兄弟们都知道,switch中经常会遇到一堆case语句,又和别的业务嵌套在一起,你说落一个break正常不,最正常不过了。

下面的小卡片点一点就是对我的最大的支持了,感谢您的支持,点一下即可,谢过主上!

那么我们应该如何防止这样的看似低级小儿科的实则又常犯的错误呢?

修改编辑器的警告级别,比我在myeclipse或者eclipse中,一次点击windows-->preferences-->java-->Compiler-->Errors/Warnings-->Potential programming problems-->”’switch’ case fall-througn”,

将后面的错误级别修改为Error,你胆敢在case后面不加break试试?我就直接给你报红色叉号,别说运行了,编译都不让你通过!!!

当然,你也可以改其他的错误级别,自己改的试试哦~

文章参考:《编写高质量代码改善java程序的151个建议》

支持作者

赞赏就不用啦,生活都不易,右下角的“在看”点一下,文章最底部的小guang告点一点,如果感觉文章不错,记得分享到朋友圈让更多人知道!

什么?java中居然可以执行js代码了?真是不知者不怪

2020-06-16

老师,我没有学过事务……同学你过来,你看老师手里拿的是什么?

2020-06-11



相关文章
break和continue和pass 我习惯yeild一起记
break和continue和pass 我习惯yeild一起记
|
1月前
|
前端开发 编译器
为什么switch里的case没有break不行
为什么switch里的case没有break不行
|
6月前
|
C语言
break和continue语句
`break` 和 `continue` 是 C 语言中控制循环流程的关键字。`break` 用于立即退出循环,不再执行循环体剩余部分。而 `continue` 则跳过当前循环的剩余语句,然后继续下一轮循环。在 `while`、`for` 和 `do while` 循环中,它们的作用相同。例子展示了在不同情况下使用 `break` 和 `continue` 如何影响循环执行。
52 2
|
6月前
Break 语句和continue语句的区别
Break 语句和continue语句的区别
110 0
|
6月前
|
C#
c#一文读懂continue、return、break区别
c#一文读懂continue、return、break区别
52 0
|
6月前
|
Java Android开发 Windows
你胆敢不加break试试?
你胆敢不加break试试?
|
6月前
break语句和continue语句的区别
break语句和continue语句的区别
54 0
continue和break的区别
continue和break的区别
125 0
break和contiune的使用方法
break和contiune的使用方法
89 0