美文网首页
2018-11-04

2018-11-04

作者: 单是一个姓 | 来源:发表于2018-11-04 17:15 被阅读0次

    java switch-case

    switch(表达式)

    1. 表达式:
    • 可以是byte,short,int,char
    • JDK5以后可以是枚举
    • JDK7以后可以是字符串
    1. case B:C
    • B的取值只能是常量
    • C不需要用大括号包裹着
    • 多个case中的值不能相同,所以B必须是一个常量
    • default可以放在任意位置(但执行结果可能会不同,见以下代码)
            String opStr = "DIV";
            switch (OpCodeEnum.matchOpCode(opStr)) {
                default :
                    System.out.println("减法");
                    break;
                case MUL:
                    System.out.println("乘法");
                    break;
                case DIV:
                    System.out.println("除法");
                    break; // 此处不管有没有break,都只打印了 "除法"                  
            }
    
    • 有break时,打印结果是 "除法"
    • 没有break时,打印结果还是是 "除法"

    调换位置后:

            String opStr = "DIV";
            switch (OpCodeEnum.matchOpCode(opStr)) {
                case MUL:
                    System.out.println("乘法");
                    break;
                case DIV:
                    System.out.println("除法");   
                default :
                    System.out.println("减法");
                    break;                         
            }
    

    打印出的是:
    "除法"
    "减法"

    default的顺序结论:

    1. 当case没有符合条件时,跟default的顺序无关(都会执行default语句)
    2. 当case有符合条件且没有break时,跟default的顺序有关(是否执行default语句)

    相关文章

      网友评论

          本文标题:2018-11-04

          本文链接:https://www.haomeiwen.com/subject/frfdxqtx.html