Java switch详解

1、概要
(1)switch 语句由一个控制表达式和多个case标签组成。
(2)switch 控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。
(3)switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。
default在当前switch找不到匹配的case时执行。default并不是必须的。
(4)一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。

2、语法格式

switch (表达式) {
    case 条件1:
        语句1;
        break;
    case 条件2:
        语句2;
        break;
    ...
    default:
        语句;
}

3、代码示例

//3.1 int类型switch示例
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);
}

//3.2 枚举(Enum)类型switch示例
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);
        }
    }
}

//3.3 String类型switch示例
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);
}

4、break
  break在switch中用于结束当前流程。一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。

//4.1 忘记写break的陷阱
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);
}
//输出结果:
2
3
0

//4.2 巧用break
//实例:输出2016年指定月份的最大天数
int year = 2016;
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);

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

int x = 0;
switch (x) {
    case 1:
        System.out.println(1);
    case 2:
        System.out.println(2);
    default:
        System.out.println("default");
}
//输出结果:
default
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值