我只是想知道默认情况是否必须包含在Java的switch语句中。我了解包括默认案例是一种很好的做法。我问的原因是因为对于下面的代码,如果删除默认大小写,代码将提供错误。有人可以帮我澄清一下这个概念吗?在此先感谢您的帮助!

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

        int month = 8;
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month"; //if delete will produce error
                     break;
        }
        System.out.println(monthString);
    }
}

最佳答案

尽管default子句不是强制性的,但如果将其删除,则monthString可能不会初始化,因此,当尝试使用System.out.println(monthString);打印它时,会出现编译错误。

如果在声明时给default一个默认值,则可以删除monthString子句。例如 :

String monthString = "Invalid month";

这将与当前的switch语句具有相同的行为,其中包括default子句。

08-18 12:17
查看更多