在 Switch 案例中,关注点是 break 语句。
每个 break 语句都会终止封闭的 switch 语句。控制流继续 switch 块之后的第一条语句。break 语句是必要的,因为没有它们,switch 块中的语句就会失败:匹配 case 标签之后的所有语句都按顺序执行,无论后续 case 标签的表达式如何,直到遇到 break 语句。
程序 SwitchDemoFallThrough 显示了 switch 块中的语句。该程序显示对应于整数月份的月份和一年中的月份:
公共类 SwitchDemoFallThrough {
public static void main(String[] args) {
java.util.ArrayList<String> futureMonths =
new java.util.ArrayList<String>();
int month = 8;
switch (month) {
case 1: futureMonths.add("January");
case 2: futureMonths.add("February");
case 3: futureMonths.add("March");
case 4: futureMonths.add("April");
case 5: futureMonths.add("May");
case 6: futureMonths.add("June");
case 7: futureMonths.add("July");
case 8: futureMonths.add("August");
case 9: futureMonths.add("September");
case 10: futureMonths.add("October");
case 11: futureMonths.add("November");
case 12: futureMonths.add("December");
break;
default: break;
}
if (futureMonths.isEmpty()) {
System.out.println("Invalid month number");
} else {
for (String monthName : futureMonths) {
System.out.println(monthName);
}
}
}
}
这是代码的输出:
八月 九月 十月 十一月 十二月
从技术上讲,最后的中断不是必需的,因为 flow 不在 switch 语句中。建议使用中断,以便修改代码更容易且不易出错。默认部分处理未由 case 部分之一显式处理的所有值。
在此处查看有关开关的完整信息