• Java switch 详解


    switch 语句由一个控制表达式和多个case标签组成。

    switch 控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。

    switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。

    default在当前switch找不到匹配的case时执行。default并不是必须的。

    一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。

    1语法格式

    Java | 复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    switch (表达式) {
    case 条件1:
        语句1;
        break;
    case 条件2:
        语句2;
        break;
    ...
    default:
        语句;
    }

    2使用示例

    int类型switch示例

    Java | 复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int i = 3;
    switch (i) {
    case 1:
        System.out.println(1);
        break;
    case 2:
        System.out.println(2);
        break;
    case 3:
        System.out.println(3);
        break;
    default:
        System.out.println(0);
    }

    枚举(Enum)类型switch示例

    Java | 复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    package net.xsoftlab.baike;
     
    public class TestSwitch {
     
        static enum E {
            A, B, C, D
        }
     
        public static void main(String args[]) {
            E e = E.B;
            switch (e) {
            case A:
                System.out.println("A");
                break;
            case B:
                System.out.println("B");
                break;
            case C:
                System.out.println("C");
                break;
            case D:
                System.out.println("D");
                break;
            default:
                System.out.println(0);
            }
        }
    }

    String类型switch示例

    Java | 复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    String str = "C";
    switch (str) {
    case "A":
        System.out.println("A");
        break;
    case "B":
        System.out.println("B");
        break;
    case "C":
        System.out.println("C");
        break;
    default:
        System.out.println(0);
    }

    3break

    break在switch中用于结束当前流程。

    一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。

    忘记写break的陷阱

    示例:

    Java | 复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int i = 2;
    switch (i) {
    case 1:
        System.out.println(1);
    case 2:
        System.out.println(2);
    case 3:
        System.out.println(3);
    default:
        System.out.println(0);
    }

    输出结果:

    Java | 复制
    1
    2
    3
    2
    3
    0

    巧用break

    实例:输出2015年指定月份的最大天数

    Java | 复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    int year = 2015;
    int month = 8;
    int day = 0;
    switch (month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        day = 31;
        break;
    case 2:
        day = 28;
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        day = 30;
        break;
    }
     
    System.out.println(day);

    4default

    default在当前switch找不到匹配的case时执行。default并不是必须的。

    示例:

    Java | 复制
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int x = 0;
    switch (x) {
    case 1:
        System.out.println(1);
    case 2:
        System.out.println(2);
    default:
        System.out.println("default");
    }

    输出结果:

    Java | 复制
    1
    default
  • 相关阅读:
    java使用 poi导出Excel 2003异常
    ajax 提交复选框
    基于tensorflow的躲避障碍物的ai训练
    现代企业的人力资源困局
    黑暗圣经---物业公司CTO/CEO改如何给老板推荐物业信息化产品
    物业管理系统选择之困——天下有没有白吃的午餐
    江湖风云再起——全球最高性价比私有云平台解决方案发布
    ES6 promise的使用
    C# web API的初步使用!!
    post 与get的区别
  • 原文地址:https://www.cnblogs.com/lzq198754/p/5780211.html
Copyright © 2020-2023  润新知