以下是我在程序中使用的代码 - 这里月份变量是一个整数
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 2:
return 28;
break;
case 4:
case 6:
case 9:
case 11:
return 30;
break;
default:
System.out.println("Invalid month.");
return 0;
}
令人惊讶的是,当我使用上面的switch构造时...它给出了一个错误,说明每个break语句后的语句都无法访问
然后我删除了所有的break语句,新代码看起来像这样---
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
return 28;
case 4:
case 6:
case 9:
case 11:
return 30;
default:
System.out.println("Invalid month.");
return 0;
}
现在..删除break语句后..代码运行得很好..
我的问题是......在开关构造中......必须使用break ..否则控制流将继续...并且所有条件都经过测试和执行!!右???
那么为什么世界上以前的**语法正确的**版本给出错误..并且修改后的语法不正确的版本运行得非常好..
任何解释......任何人!!
答案 0 :(得分:2)
因为当您使用“return”时代码停止执行。
答案 1 :(得分:1)
错误消息告诉您永远不会执行break
语句,因为它们始终遵循return
语句。
在break
构造中使用switch
语句不是强制性的。
答案 2 :(得分:1)
您不需要break
,因为您已经拥有return
。如果您return
,那么您将永远无法访问break
,这就是您收到错误的原因。
答案 3 :(得分:0)
return
完全退出循环,使break
无法访问。
答案 4 :(得分:0)
break不是必需的。如果您使用return语句,则不需要。