Java switch多選擇

紅藍榮光諾坎普發表於2020-12-14

Java switch多選擇

switch與case一起用

switch(表示式1){

​ case value1 :

//語句

​ break;

​ case value2 :

//語句

​ break;

}

注意加break

如果沒有break,則在執行完當前的case中的語句後,會繼續預設穿透繼續執行下一個case中的語句(無論是否滿足下個case條件)

package struct;

public class SwitchDemo1 {
    public static void main(String[] args) {
        char grade = 'A';
        switch (grade){
            case 'A':
                System.out.println("優秀");
                break;
            case 'B':
                System.out.println("良好");
            case 'C':
                System.out.println("及格");
        }
    }
}//輸出為  優秀
package struct;

public class SwitchDemo1 {
    public static void main(String[] args) {
        char grade = 'B';
        switch (grade){
            case 'A':
                System.out.println("優秀");
                break;
            case 'B':
                System.out.println("良好");
            case 'C':
                System.out.println("及格");
        }
    }
}

此時caseB中沒有break,執行完後會穿透到caseC,因此輸出為:

良好

及格

字串的switch

package struct;

public class SwitchDemo{
    public static void main(String[] args) {
        String name = "Java";
        switch (name){
            case "Java":
                System.out.println("Java");
                break;
            case "程式設計":
                System.out.println("程式設計");
                break;
            default:
                System.out.println("中英");
        }
    }
}

反編譯:.class反編譯。可以執行的程式一定生成了.class

每個物件都有自己的hashCode//雜湊Code

將.class檔案拉到.java原始碼的資料夾下再用IDEA開啟.class即可

程式碼

package struct;

public class SwitchDemo{
    public static void main(String[] args) {
        String name = "Java";
        switch (name){
            case "Java":
                System.out.println("Java");
                break;
            case "程式設計":
                System.out.println("程式設計");
                break;
            default:
                System.out.println("中英");
        }
    }
}

.class開啟:字串顯示為hashCode

package struct;

public class SwitchDemo {
    public SwitchDemo() {
    }

    public static void main(String[] args) {
        String name = "Java";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 1039797://每個都有自己的hashCode
            if (name.equals("程式設計")) {
                var3 = 1;
            }
            break;
        case 2301506:
            if (name.equals("Java")) {
                var3 = 0;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("Java");
            break;
        case 1:
            System.out.println("程式設計");
            break;
        default:
            System.out.println("中英");
        }

    }
}

相關文章