控制語句-選擇結構(switch)


 

switch選擇語句:

  switch語句一般情況下與if語句的效果是等效的,但是switch語句的執行速率比嵌套的if語句要快,switch語句不分單選/雙選/多選結構,它的結構取決於代碼的邏輯。

 

 

  表達式:

switch (條件表達式) {
        case 1:        //條件表達式執行完畢后,switch判斷該值是否為1,如果是1,則執行case1 以下的代碼
            代碼塊1;
            break;
        case 2:        //case1執行完畢后,會繼續判斷該值是否為2,如果是,同理執行case2以下的代碼
            代碼塊2;
            break;
        default:       //如果條件表達式執行完畢,且該值即不等於1也不等於2,則執行該代碼塊
            代碼塊3;
            break;
        }

(注意:為了防止case穿透問題,一般在使用switch語句時都必須加上break(跳出),否則case下余的代碼也會被編譯執行,就毫無意義)

(注意:在JDK7之后的版本,switch語句還支持String類型,也就是說case后面的值不僅可以為數字,也可以為字符/字符串等。但是如果使用float與double會出現丟失精度的問題)

 

  case穿透的理解:

    當條件表達式計算完成后,程序開始執行,如果結果為1,則執行case1的代碼塊1。當代碼塊1執行完畢后,程序還會繼續執行case2的代碼塊2,直至執行完所有case。

  一般寫程序時只有需要多選擇結構時才會經常用到switch語句,如果是單/雙選擇結構,一般用if語句即可。

 

  示例:

    ①使用switch語句實現一個簡單的擲篩子小程序:

package exercise;

/**
 * @author 劉小將
 * switch語句:多選擇結構
 * 一個簡單的擲色子小程序
 */
public class TestSwitch {
    
    public static void main(String[] args) {
        
        double b = Math.random();
        int e = 1+(int)(b*6);
        switch (e) {    //switch()中默認是int型,或者自動轉為int的類型(byte,short,char),也可以是枚舉。JDK7版本后還支持字符串
        case 6:
            System.out.println("恭喜您,您中了一等獎!");
            break;        //注意:如果此處不加break,則會發生case穿透,第一個case后面的代碼將會被全部執行編譯,所以必須加上。
        case 5:
            System.out.println("恭喜您,您中了二等獎!");
            break;
        case 4:
            System.out.println("恭喜您,您中了三等獎!");
            break;
        default:
            System.out.println("很遺憾,您未中獎!");
            break;
        }
    }
}

 

    ②使用switch語句實現判斷26個拉丁字母的音素

package exercise;

/**
 * @author 劉小將
 * switch語句:多選擇結構
 * 判斷26個拉丁字母的因素
 */
public class TestSwitch {
    
    public static void main(String[] args) {
        
        char a = 'a';
        int rand = (int)(26*Math.random());
        char a2 = (char)(a+rand);        //強制轉型為char型
        System.out.println(a2+":");
        switch(a2) {
        case 'a':
            System.out.println("元音");
            break;
        case 'e':
            System.out.println("元音");
            break;
        case 'i':
            System.out.println("元音");
            break;
        case 'o':
            System.out.println("元音");
            break;
        case 'u':
            System.out.println("元音");
            break;
        case 'w':
            System.out.println("半元音");
            break;
        case 'y':
            System.out.println("半元音");
            break;
        default:
            System.out.println("輔音");
            break;
        }
    }
}

 


免責聲明!

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



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