Java switch详解

来源:互联网 发布:软件开发安全标准规范 编辑:程序博客网 时间:2024/05/22 13:55

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);}//输出结果:230//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
0 0
原创粉丝点击