此Q而非寻找验证。
Java docs on switch statement读取多个default
块可以:
switch语句的主体称为switch switch。可以使用一个或多个大小写或默认标签来标记交换机块中的语句。 “
是否存在2 + default
个阻止的情况
可以存在switch
个统计信息?不能以我的知识。而且 - 没有意义。
答案 0 :(得分:1)
JLS始终是真正的参考:
http://docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.11
值得注意的是:
给定switch语句,以下所有内容必须为true或a 发生编译时错误:
与switch语句关联的每个case常量必须与switch语句的类型兼容 表达式(第5.2节)。
如果switch语句的Expression类型是枚举类型,则每个与switch语句关联的case常量必须为 这种类型的枚举常量。
与switch语句关联的两个case常量中没有两个具有相同的值。
与switch语句关联的case常量为null。
最多一个默认标签与switch语句关联。
对于一些不那么含糊的东西,大概会更清楚:
切换块语句可以使用一个或多个
case
标签或单个可选的default
标签进行标记。
答案 1 :(得分:0)
没有。在switch语句中只能有一个默认块。
int a = -1;
switch (a) {
case 0: System.out.println("zero"); break;
case 1: System.out.println("one"); break;
default: System.out.println("default");
}
如果您添加了第二个default
,那将是编译时错误。
答案 2 :(得分:0)
它只是说你可以有一个或多个标签,你可以使用的两种类型的标签是case和default。它无法澄清的是,你可以有多个案例,只有一个默认标签。
答案 3 :(得分:0)
<强> A statement in the switch block can be labeled with one or more case or default labels
强>
它永远不会说它可以有超过1个默认标签。这里的“标签”以复数形式与其他案例标签一起使用。
声明多于1个默认语句
是编译时错误答案 4 :(得分:0)
不,即使你可以这样做,一个switch语句允许执行多行代码,因此当它只需要使用一次时,实际上永远不会使用两次语句。< / p>
执行多行代码的switch语句示例:
switch (month){
case 1:
monthString = "January";
month = 2;
System.out.println("It is " + monthString + " the " + month + "of the year");
break;
case 2: monthString = "February";
break;
}