切换语句运行不正常,并在我休息时给出错误;

时间:2011-06-26 01:31:51

标签: java

以下是我在程序中使用的代码 - 这里月份变量是一个整数

  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 ..否则控制流将继续...并且所有条件都经过测试和执行!!右???

那么为什么世界上以前的**语法正确的**版本给出错误..并且修改后的语法不正确的版本运行得非常好..

任何解释......任何人!!

5 个答案:

答案 0 :(得分:2)

因为当您使用“return”时代码停止执行。

答案 1 :(得分:1)

错误消息告诉您永远不会执行break语句,因为它们始终遵循return语句。

break构造中使用switch语句不是强制性的。

答案 2 :(得分:1)

您不需要break,因为您已经拥有return。如果您return,那么您将永远无法访问break,这就是您收到错误的原因。

答案 3 :(得分:0)

return完全退出循环,使break无法访问。

答案 4 :(得分:0)

在switch语句中,

break不是必需的。如果您使用return语句,则不需要。