首页 > 学院 > 开发设计 > 正文

Java switch 详解

2019-11-14 08:48:33
字体:
来源:转载
供稿:网友

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语法格式2使用示例·int类型switch示例·枚举(Enum)类型switch示例·String类型switch示例3break·忘记写break的陷阱·巧用break4default

1语法格式

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

2使用示例

int类型switch示例

1234567891011121314int 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示例

12345678910111213141516171819202122232425262728package 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示例

1234567891011121314String 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的陷阱

示例:

1234567891011int 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);}

输出结果:

123230

巧用break

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

12345678910111213141516171819202122232425int 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并不是必须的。

示例:

123456789int x = 0;switch (x) {case 1:    System.out.println(1);case 2:    System.out.println(2);default:    System.out.println("default");}

输出结果:

1default

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表