2018-11-04

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语句)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 控制流 Swift提供了各种控制流程语句。这些包括while循环多次执行任务; if,guard以及switch基...
    Fuuqiu阅读 433评论 0 0
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 4,042评论 0 2
  • 失败后郁郁寡欢是懦夫的表现。 天涯此岸,回眸仰望已是曾经沧海,百花残月之冬。细雨打在窗户上,滴滴答答。我转头向外望...
    陈启丶阅读 968评论 0 1
  • 作者开篇第一句就说,All authorities on the style of English prose a...
    目标是终身学习阅读 2,597评论 0 1
  • 批评,一种新的方法 父母对孩子的大多数批评是无益的。他会造成愤怒、憎恨,以及报复家长的欲望。甚至还有一个更糟的后果...
    曹华_全脑思维阅读 259评论 0 0

友情链接更多精彩内容