你胆敢不加break试试?

简介: 你胆敢不加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试试?我就直接给你报红色叉号,别说运行了,编译都不让你通过!!!

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


相关文章
|
3月前
|
前端开发 编译器
为什么switch里的case没有break不行
为什么switch里的case没有break不行
|
4月前
|
Linux Docker 容器
10-24|如果我这两个都配置了privileged:true我后边加的这个管用吗
10-24|如果我这两个都配置了privileged:true我后边加的这个管用吗
|
8月前
|
JavaScript Java Android开发
你胆敢在case后面不加break试试?
你胆敢在case后面不加break试试?
|
8月前
|
监控 Shell
shell学习(五) 【循环控制continue,break、while 语法】
shell学习(五) 【循环控制continue,break、while 语法】
43 0
|
8月前
|
前端开发 安全 开发者
【面试题】如何替换项目中的if-else和switch
【面试题】如何替换项目中的if-else和switch
|
JavaScript 前端开发
forEach中return会退出循环吗 (改)
forEach中return会退出循环吗 (改)
139 1
|
Shell 开发者
shell 流程控制语句及 break-continue 使用方法 | 学习笔记
快速学习 shell 流程控制语句及 break-continue 使用方法。
明明打印到文件了,为啥tail -f看不到
文章《一分钟了解nohup和&的功效》留了一个“nohup.out为啥没有包含stdout输出”的尾巴,今天把坑填了。
1077 0