现在的位置: 首页 > 综合 > 正文

提高你的Java代码质量吧:break万万不能忘

2013年06月02日 ⁄ 综合 ⁄ 共 964字 ⁄ 字号 评论关闭

一、分析 

switch-case语句,如果在每个case语句后面少加了break关键字。程序从该case分支继续执行下一个分支,直到遇见break后或执行完最后一个分支,switch语句执行结束。  

二、场景 

如此段代码:

public class Client{ 
    public static void main(String[] args){ 
        System.out.println("2 = "+ toChineseNumberCase(2)); 
    } 
} 
 
//把阿拉伯数字翻译成中文大写数字 
public static String toChineseNumberCase(int n){ 
    String chineseNumber = ""; 
    switch(n){ 
        case 0: 
            chineseNumber = "零"; 
        case 1: 
            chineseNumber = "壹"; 
        case 2: 
            chineseNumber = "贰"; 
        case 3: 
            chineseNumber = "叁"; 
        case 4: 
            chineseNumber = "肆"; 
        case 5: 
            chineseNumber = "伍"; 
        case 6: 
            chineseNumber = "陆"; 
        case 7: 
            chineseNumber = "柒"; 
        case 8: 
            chineseNumber = "捌"; 
        case 9: 
           chineseNumber = "玖"; 
    } 
    return chineseNumber; 
} 

运行结果是:2=玖。由于每个case语句后面稍加了break关键字。程序从”case 2"后面的语句开始执行,直到找到break语句结束,可惜的是我们的程序中没有break语句,于是在程序执行的过程中,chineseNumber的赋值语句会执行多次,从等于"贰"、等于"叁”,一直变到等于"玖",Switch语句执行结束了。于是结果就是如此了。  

三、建议 

记住在case语句后面随手写上break语句,养成良好的习惯 

对于此类问题,还有一个简单的解决办法:修改Eclipse的警告级别。Performaces->Java->Compiler->Errors/Warnings->Potential
Programming->
problems,然后修改'switch' case fall-through为Error级别,你如果没有在case语句中加入break,Eclipse会直接报错

抱歉!评论已关闭.