默认情况下必须包含在Java的switch语句中

3 java default switch-statement

我只是想知道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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 7

虽然该default子句不是强制性的,但如果删除它,则monthString可能无法初始化,因此当您尝试使用该子句进行打印时会出现编译错误System.out.println(monthString);.

default如果monthString在声明时给出默认值,则可以删除该子句.例如 :

String monthString = "Invalid month";
Run Code Online (Sandbox Code Playgroud)

这将提供与当前switch语句相同的行为,其中包括default子句.

  • 太棒了,谢谢你的澄清! (2认同)
  • @Victor 我不同意。确定分配是为了确保您的所有代码路径分配您打算分配的值。最好只分配一次您打算分配的值;立即分配一个值(可能会覆盖它)会带走一层编译器检查代码的正确性。 (2认同)