java - default case 必须包含在 Java 的 switch 语句中吗

标签 java switch-statement default

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

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 子句。

关于java - default case 必须包含在 Java 的 switch 语句中吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36396855/

相关文章:

java - java在windows vista上安装和使用play框架

c++ - 设置C++中的默认浮点打印精度

Django 表单验证默认值错误

PHP:lambda 的默认函数参数值

java - 匿名数组索引而不是 switch 语句?

java - Akka Actor系统TestActorRef - 试图理解TestActorRef的含义[T < : Actor]

java - 模拟 - 创建新文件(Java)

java - 如何设置Jsoup读取的数据编码?

c++ - 未到达的案例会影响切换案例的性能

c++ - switch 优于 if-else 语句的优点