Java面試題:switch能否作用在byte、long、String上?


  • switch可作用於char byte short int

  • switch可作用於char byte short int對應的包裝類

  • switch不可作用於long double float boolean,包括他們的包裝類

  • switch中可以是字符串類型,String(JDK1.7之后才可以作用在string上)

  • switch中可以是枚舉類型(JDK1.5之后)

public class Test {
    public static void main(String[] args) {
        // switch可作用於char byte short int
        char season1 = 3;
        byte season2 = 3;
        short season3 = 3;
        int season4 = 3;
 
        // switch可作用於char byte short int對應的包裝類
        Character season11 = 3;
        Byte season22 = 3;
        Short season33 = 3;
        Integer season44 = 3;
 
        // 下面的基本類型的包裝類就不行了,還有double float的包裝類
        // Long season = 0;
 
        // switch不可作用於long double float boolean,包括他們的包裝類
        long season5 = 3;
        double season6 = 3;
        float season7 = 3f;
        boolean season8 = false;
 
        String strSeason = "";
        switch (season1) {
        case 1:
            strSeason = "Spring";
            break;
        case 2:
            strSeason = "Summer";
            break;
        case 3:
            strSeason = "Fall";
            break;
        case 4:
            strSeason = "Winter";
            break;
        default:
            strSeason = "四季中沒有這個季節";
            break;
        }
        System.out.println("strSeason:" + strSeason);
    }
}

JDK1.5枚舉

/*
 * switch中可以是1.5枚舉類型
 */
//枚舉三個量
enum Signal{
    GREEN,YELLOW,RED;
}
public class Test {
    public static void main(String[] args) {
        Signal color = Signal.RED;
        
        switch (color) {
        case RED:
            color = Signal.YELLOW;
            break;
        case YELLOW:
            color = Signal.RED;
        case GREEN:
            color = Signal.YELLOW;
        default:
            System.out.println("什么鬼燈");
            break;
        }
        
        System.out.println("color:"+color);
    }
}

JDK1.7之后支持String,但是要求case也是String

/*
 * switch中可以是字符串類型
 *String(jdk1.7之后才可以作用在string上)
 */
public class Test {
    public static void main(String[] args) {
        int season = 0;
        String strSeason = "Summer";
        switch (strSeason.toLowerCase()) {
        case "spring":
            season = 1;
            break;
        case "summer":
            season = 2;
            break;
        case "fall":
            season = 3;
            break;
        case "winter":
            season = 4;
            break;
        default:
            season = -1;// 沒找到對應的季節
            break;
        }
        System.out.println(strSeason + "-->" + season);
    }
}


免責聲明!

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



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