java switch

switch支持int和枚举类型,可以用char,byte,short,int类型,jdk1.7中支持string类型,但是不支持long类型,因为
byte取值范围-128~127
int的取值范围为(-2147483648~2147483647)
short的取值范围为-32768~32767,占用2个字节
long类型数据范围为-9223372036854774808~9223372036854774807
当long转为int是会造成精度损失

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值