Switch語句的參數是什麼類型的?

在Java5之前,switch(expr)中,exper只能是byte,short,char,int類型。java

從Java5開始,java中引入了枚舉類型,即enum類型。面試

從Java7開始,exper還能夠是String類型。markdown

switch關鍵字對於多數java學習者來講並不陌生,因爲筆試和麪試常常會問到它的用法,這裏作了一個簡單的總結:學習

  • 能用於switch判斷的類型有:byte、short、int、char(JDK1.6),還有枚舉類型,可是在JDK1.7後添加了對String類型的判斷
  • case語句中少寫了break,編譯不會報錯,可是會一直執行以後全部case條件下的語句而再也不判斷,直到default語句
  • 若果沒有符合條件的case就執行default下的代碼塊,default並非必須的,也能夠不寫

 

 1 package codeAnal;
 2 
 3 public class SwitchDemo {
 4 
 5     public static void main(String[] args) {
 6         stringTest();
 7         breakTest();
 8         defautTest();
 9     }
10 
11     /*
12      * default不是必須的,也能夠不寫
13      * 輸出:case two
14      */
15     private static void defautTest() {
16         char ch = 'A';
17         switch (ch) {
18         case 'B':
19             System.out.println("case one");
20             break;
21         case 'A':
22             System.out.println("case two");
23             break;
24         case 'C':
25             System.out.println("case three");
26             break;
27         }
28     }
29 
30     /*
31      * case語句中少寫了break,編譯不會報錯
32      *     可是會一直執行以後全部case條件下的語句,並再也不進行判斷,直到default語句
33      *     下面的代碼輸出: case two
34      *                   case three
35      */
36     private static void breakTest() {
37         char ch = 'A';
38         switch (ch) {
39         case 'B':
40             System.out.println("case one");
41             
42         case 'A':
43             System.out.println("case two");
44             
45         case 'C':
46             System.out.println("case three");
47         default:
48             break;
49         }
50     }
51 
52     /*
53      * switch用於判斷String類型
54      *     輸出:It's OK!
55      */
56     private static void stringTest() {
57         String string = new String("hello");
58         switch (string) {
59         case "hello":
60             System.out.println("It's OK!");
61             break;
62 
63         default:
64             System.out.println("ERROR!");
65             break;
66         }
67     }
68 }
相關文章
相關標籤/搜索