閱讀390 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Java分支結構

我們在前麵已經詳細的介紹過了什麼是循環結構,那麼在java中還有什麼些什麼結構呢?
現在我們來比較詳細的探討一下下一種java結構---分支結構:
Java的分支結構有兩種:
1、 if語句
2、 switch語句。

首先我們介紹一下什麼是分支結構:
分支結構就是在順序結構的執行過程中岔出一個特殊的分支去執行,該岔出的分支是為了對一些內容進行判斷和選擇。

接著,什麼是if語句:
If代表的是如果,一幫情況下和else連用。else代表的是 否則 。其基本表達式如下所示:
If(布爾表達式){
結果為真則執行測出的代碼
}else{
結果為假,則執行這裏的代碼
}
看一個例子:


class BranchToIf{
    public static void main(String[] args) {
        /**
         * 下麵的分支語句要做的事情是:
         * 首先,運算 12==10  得到一個布爾值,如果 12 == 10 為真 ,這進入代碼 1 否則進入代碼 2
         */
        if(12==10){
            //代碼 1
            System.out.println("12等於10");
        }else {
            //代碼 2
            System.out.println("12不等於10");//實際輸出。。因為我侄兒子都知道12不等與10
        }
    }
}```  


當然,if語句的用法不止於此:
If(布爾表達式A){
    如果表達式A為真則執行這裏。否則進入下一個else if的布爾表達式B的運算
}else if (布爾表達式B){
    如果布爾表達式B為真則執行這裏,否則進入下一個不二表達式C的運算
}else if(布爾表達式C){
··如果布爾表達式B為真則執行這裏,否則執行else下麵的代碼 

}else{
    如過ABC都不為真則執行這裏。
}

代碼如下:
class BranchToElseIf{
    public static void main(String[] args) {
        if(10==11){//顯然不等,進入下一個else if
            System.out.println("10等於11");
        }else if (10==12){//顯然不等,進入else if
            System.out.println("10等於12");
        }else if (10==13){//顯然被不等 進入 else
            System.out.println("10等於13");
        }else {
            System.out.println("10等於10");//真是的執行代碼,因為什麼你知道的。
        }
    }
}
作為一個合格的開發者,你需要帶自己所寫的代碼負責。所以,盡量不要去if   else if 裏麵再接著寫判斷,如果你非寫不可,最多不要超過兩層,你也許可以對非值進行理解,然後盡量在非此次值做邏輯。
比如說:
```javascript

class BranchToIf2 {
    public static void main(String[] args) {
        if (10 == 20) {
            System.out.println("10等於20");
        } else {
            System.out.println("10不等於20");
        }
        //可以改寫為:其結果是一樣的.
        if (10 != 20) {
            System.out.println("10不等於20");
            return;
        }
        System.out.println("10等於20");
    }
}

下麵我們介紹什麼是switch:
Switch語句判斷的是,一個值和一堆值的映射關係,說簡單點,就是從一值中找出你想要的哪一個值。
其語法如下:
Switch:一個你需要比對的值{
case value:
你要做的代碼
一般要有一個break:
case value2 :
你需要執行的代碼
一般要有一個break:
default:
如果都沒有和你期望的值映射成功,則執行這裏,這裏不需要驚喜break。
}
代碼如下:

class BranchToSwitch {
    public static void main(String[] args) {
        switchMetoh("Aatrox");
        switchMetoh2("Aatrox");
    }
    static void switchMetoh(String i) {
        switch (i) {
            case "Aatrox":
                System.out.println("暗夜劍魔");//執行這裏
                break;//結束
            case "Ahri":
                System.out.println("九尾妖狐");
                break;
            default:
                System.out.println("沒有匹配值");
        }

    }
    static void switchMetoh2(String i) {
        switch (i) {
            case "Aatrox":
                System.out.println("暗夜劍魔");//執行這裏
                //沒有break則會穿透!所有case代碼都會執行,直到default
            case "Ahri":
                System.out.println("九尾妖狐");
            default:
                System.out.println("沒有匹配值");
        }
        // 執行結果:
        /*
        *   暗夜劍魔
        *   九尾妖狐
        *  沒有匹配值
        * */
    }
}

對於switch語句需要注意的是,每一個case下麵的代碼必須要跟break,否則就會形成穿透現象,直到遇到下一個break或則defaut.

最後更新:2017-05-25 15:01:27

  上一篇:go  我的博客即將同步至“雲棲社區”,誠邀技術同仁一起入駐。
  下一篇:go  mac下ssh登錄REMOTE HOST IDENTIFICATION HAS CHANGED