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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM