Java選擇結構(if、switch)


我們有時會面臨人生的分岔路口,生活中也會有許多大大小小的選擇。

程序也是為了提高人們生活質量的,不可能脫離實際生活,所以Java程序中也必須得實現選擇結構。

當我們的代碼按照書寫順序一句一句執行的時候,此時則為順序結構。像我們書寫的多條輸出語句,會一句一句從上到下的按照順序執行。

選擇結構是在具備某種條件下就做什么選擇,在我們生活中也頻繁使用:如果我考了100分,我媽媽就會給我獎勵;如果今天不下雨,我就去公園玩......沒錯,Java就是使用如果,即if

1.if

單if語句

語法:if(條件:布爾類型的數據,可以是表達式,也可以用邏輯運算符){ //如果條件為 true,執行語句 };

注意:if(a!=0)和if(a)是等價的

流程圖:

如果我考試考了100分,那么媽媽就會給我獎勵一個玩具

package com.dh.control;

public class IfDemo01 {
    public static void main(String[] args) {
       //if
        int score = 100;
        if(score == 100){
            System.out.println("太棒啦!獎勵一個小汽車!");
        }
    }
}

if...else語句

語法::if(條件表達式){ //滿足條件執行的語句 } else { //不滿足條件的執行語句 } ;

流程圖:

如果我考試考了100分,那么媽媽就會給我獎勵一個玩具,否則,就沒有獎勵了

package com.dh.control;

public class IfDemo01 {
    public static void main(String[] args) {
        //if...else
        int score = 99;
        if(score == 100){
            System.out.println("太棒啦!獎勵一個小汽車!");
        }else{
            System.out.println("很遺憾,下次再接再厲!");
        }
    }
}

if...else if...else(else可選)

語法:if(條件表達式){ //滿足條件 1 的執行語句 } else if(條件表達式){ //可以有多個 else if 塊 //滿足條件 2 的執行語句 } else { //不滿足條件的執行語句 } ;

流程圖:

99分都沒有獎勵的話,就太讓人沮喪了,和媽媽重新商量了一下,媽媽承諾,如果我考試考了100分,給我獎勵一個玩具,如果我考了90分以上,就給我獎勵一個冰淇淋,否則,就沒有獎勵了

package com.dh.control;

public class IfDemo01 {
    public static void main(String[] args) {

        int score = 99;
        if(score == 100){
            System.out.println("太棒啦!獎勵一個小汽車!");
        }else if(score>=90){
            System.out.println("干的不錯!獎勵一個冰淇淋");
        } else{
            System.out.println("很遺憾,下次再接再厲!");
        }
    }
}

注意:選擇結構:判斷條件符合條件則返回結果不再進行之后的條件判斷,如果不符合條件,即繼續判斷條件,直到所有判斷條件都不滿足時最后一個為結果。*

package com.dh.control;

public class IfDemo02 {
    public static void main(String[] args) {
        int num = 3;
        if(num>1){
            System.out.println("3>1");
        }else if(num>2){
            System.out.println("3>2");
        }
    }
}

結果為輸出3>1,盡管3>2也成立,但是由於3>1已經滿足了條件,就會直接輸出結果,不會再往下做判斷了

if嵌套

語法:if(條件表達式){ if(條件表達式){ //滿足條件時執行的語句 } }

媽媽答應,如果期末考,數學考了100,語文90分以上,就可以去游樂場玩,否則就不能去了

package com.dh.control;

public class IfDemo03 {

    public static void main(String[] args) {
        int math = 100;
        int chinese = 95;
        if(math == 100){
            if(chinese>90){
                System.out.println("假期去游樂場玩!");
            }
        }else{
            System.out.println("下次加油!");
        }
    }
}

//當然可以直接使用if(math==100 && chinese>90)一個判斷,但是這里只是為if嵌套舉例子

2.switch

選擇結構除了if選擇,還有一個switch選擇

語法:

switch(數據:byte、short、int、char、字符串、枚舉)

{

case 數據:{//執行語句}; break;

case 數據:{//執行語句}; break;

……

default:{//執行語句} break;

}

注意:

swtich只能做等值判斷,即switch()里的數據與case后面的數據進行比較

break的作用:終止整個switch選擇,若沒有break的話會繼續向下執行代碼

流程圖:

英語成績呢,沒有具體的分數,只有A-E五個等級,媽媽說,考A獎勵一個玩具,考B獎勵一個冰淇淋,考C什么都沒有,考D的話就要每天多背五個單詞,考E就要每天多背十個單詞,其它缺考就要罰站了!

package com.dh.control;

public class SwitchDemo {

    public static void main(String[] args) {

        char score = 'B';
        switch (score){
            case 'A': {
                System.out.println("獎勵一個小汽車!");
            }break;
            case 'B': {
                System.out.println("獎勵一個冰淇淋!");
            }break;
            case 'C': {
                System.out.println("再接再厲!");
            }break;
            case 'D': {
                System.out.println("每天多背五個單詞!");
            }break;
            case 'E': {
                System.out.println("每天多背十個單詞!");
            }break;
            default:{
                System.out.println("罰站!");
            }break;
        }
    }
}

若去掉case B、C的break,就得碰到D的break語句才會退出,所以B、C和D的語句都會被執行

package com.dh.control;

public class SwitchDemo {

    public static void main(String[] args) {

        char score = 'B';
        switch (score){
            case 'A': {
                System.out.println("獎勵一個小汽車!");
            }break;
                //去掉case B、C的break
            case 'B': {
                System.out.println("獎勵一個冰淇淋!");
            }
            case 'C': {
                System.out.println("再接再厲!");
            }
            case 'D': {
                System.out.println("每天多背五個單詞!");
            }break;
            case 'E': {
                System.out.println("每天多背十個單詞!");
            }break;
            default:{
                System.out.println("罰站!");
            }break;
        }
    }
}

if和switch都為選擇結構,所以一般情況下,用if結構的,可以轉換為switch,用switch結構的,也可以轉換為if,大多數情況下會使用if,比較靈活。

有錯誤請指出~


免責聲明!

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



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