【发布时间】:2014-07-25 18:36:54
【问题描述】:
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";
break; //why is there a switch statement here?
}
System.out.println(monthString);
}
}
页面说明
从技术上讲,不需要最后的休息,因为流量会从 开关语句。建议使用中断,以便修改 代码更简单,更不容易出错。默认部分句柄 未由其中一种情况明确处理的所有值 部分。
我不确定第二句话是否证明在 switch 语句中使用中断是合理的,或者具体说在末尾添加中断语句可以减少代码出错的可能性。如果我在默认情况下抛出异常,是否有必要在之后调用 break 或者这是一种浪费?在 Netbeans 中一红!出现在无法访问的 break 语句旁边,但它编译得很好。
关于可读性,如果满足条件时运行的代码跨越多行,应该如何格式化 case 块?例如,不仅仅是monthString = "January";,还有 10 行带有循环和东西的代码?
我正在使用开关来测试用户是否输入了选项 1、2 或 3 的数字。
【问题讨论】:
-
"如果我在默认情况下抛出异常,是否有必要在之后调用 break 或者这是一种浪费?" - 抛出异常后做任何事情是没有意义的。
-
当我使用 IDE 添加 case 语句时,它会将它们放在最后。最后使用
break;恕我直言,不容易出错。 -
在本例中,我将使用数组而不是 switch 语句。 (一两行代码)
标签: java switch-statement maintainability