天天看點

JAVA基礎——條件語句詳解(if,switch case)ifswitch case

文章目錄

  • if
  • switch case

Java中的條件語句包括if語句和switch case語句。

if

if作為條件語句,其文法為:

if(表達式1){

表達式2;

}

其中表達式1必須傳回布爾類型,如果為true就執行表達式2。

if後面可以跟else或者if else。

else if表示多條件判斷,跟在if後面:

else if(表達式1){

表達式2;

}

和if一樣,表達式1必須傳回布爾類型,如果為true就執行表達式2。

else跟在if或者else if的後面表示不成立的情況,如果表達式1的傳回值為false,則執行else裡面的代碼。

例:

public class Test {
    public static void main(String[] args) {
        int a = 0;
        if (a > 0){
            System.out.println(1);
        }
        else if (a < 0){
            System.out.println(2);
        }
        else {
            System.out.println(3);
        }
    }
}
           

輸出結果為:

JAVA基礎——條件語句詳解(if,switch case)ifswitch case

因為a>0為false,是以不會執行if裡面的語句,繼續往下else if,a<0,仍然為false,不會執行else if裡面的語句。最後執行else裡面語句,輸出3。

注意:

1,if語句一次隻能執行一個分支,要麼執行if,要麼執行else if,要麼執行else,不可能同時傳回多個分支,if為true之後就不會再執行else if或者else,隻有所有的if和else if都為false才會執行else

2,else if或者else語句和if語句中間不能有其它語句,否則編譯器會報錯。如圖:

JAVA基礎——條件語句詳解(if,switch case)ifswitch case

當if裡面隻有1個語句時,大括号可以省略。如:

JAVA基礎——條件語句詳解(if,switch case)ifswitch case

switch case

switch case 語句判斷一個變量與一系列值中某個值是否相等,每個值稱為一個分支。

switch case 的文法如下:

switch(表達式){

case value :

//語句

break; //可選

case value :

//語句

break; //可選

//可以有任意數量的case語句

default : //可選

//語句

}

在JDK1.5之前,switch括号裡面的表達式隻支援byte short char int四種資料類型。

JDK1.5 在switch中增加了枚舉類與byte short char int的包裝類,對四個包裝類的支援是因為java編譯器在底層手動進行拆箱,而對枚舉類的支援是因為枚舉類有一個ordinal方法,該方法實際上是一個int類型的數值。

jdk1.7開始支援String類型,但實際上String類型有一個hashCode算法,傳回結果也是int類型。

byte short char類型可以在不損失精度的情況下向上轉型成int類型,是以總的來說,可以認為switch中隻支援int。

break和default屬于轉向語句:

break加在case語句後面,當遇到 break 語句時,switch 語句終止。case 語句不必須要包含 break 語句。如果沒有 break 語句出現,程式會繼續執行下一條 case 語句,直到出現 break 語句。

default分支一般是 switch 語句的最後一個分支(可以在任何位置,但建議在最後一個)。default 在沒有 case 語句的值和變量值相等的時候執行。default 分支不需要 break 語句。

如:

public class Test {
    public static void main(String[] args) {
        int a = 0;
        switch(a){
            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);
        }
    }
}
           

輸出結果:

JAVA基礎——條件語句詳解(if,switch case)ifswitch case

因為a等于0,沒有任何一個case分支是0,是以執行default語句,輸出1。

switch case語句也可以這樣寫:

case value1:case value2:case value3:……

如:

public class Test {
    public static void main(String[] args) {
        int a = 0;
        switch (a){
            case 0:case 1:case 2: case 3:
                System.out.println(0);
        }
    }
}
           

上述代碼表示a=0,1,2,3都輸出0。