美文网首页
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