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
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值