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

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


相关文章
|
4月前
|
Python
Python基础教程——break语句
Python基础教程——break语句
|
4月前
|
监控 Shell
shell学习(五) 【循环控制continue,break、while 语法】
shell学习(五) 【循环控制continue,break、while 语法】
29 0
|
4月前
|
JavaScript Java Android开发
你胆敢在case后面不加break试试?
你胆敢在case后面不加break试试?
|
10月前
|
JavaScript 前端开发
forEach中return会退出循环吗 (改)
forEach中return会退出循环吗 (改)
63 1
|
编译器 C语言 C++
scanf返回值被忽略的原因及其解决方法(vs2019)
scanf返回值被忽略的原因及其解决方法(vs2019)
449 0
break和contiune的使用方法
break和contiune的使用方法
84 0
JavaScrip代码讲解break与continue的区别
基本break语句和continue语句都是在循环语句中使用的。break与continue用来控制循环流程。
|
Shell 开发者
shell 流程控制语句及 break-continue 使用方法 | 学习笔记
快速学习 shell 流程控制语句及 break-continue 使用方法。
146 0
${变量:?提示信息}是什么意思?
当待测的变量不存在或者为空时,将返回提示信息,如果待测变量存在,则直接传变量值。
101 0