zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    第一次冲次(补)
    软件工程概论个人总结
    第16周进度条
    读《梦断代码》第2章有感
    java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
    传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知。
    怎么卸载VS2005呢?控制面板里内容太多,找不出哪些是属于VS2005?我的VS2005出问题了
    常用正则表达式的写法
    Http响应头字段详解,MyEclipse配置tomcat,servlet运行方式
    html框架 字体颜色 列表 表格 图片 定义列表 a标签
  • 原文地址:https://www.cnblogs.com/lzq198754/p/5780211.html
Copyright © 2011-2022 走看看