在交换机中断? java的

时间:2015-10-11 20:38:25

标签: java

你刚刚作为初学者学习java,今年秋天的事情让我很困惑。

所以人们会说,如果你不添加"休息"在switch中声明,它会自动流经所有情况。

case 2:
// Do Something A
case 3:
// Do Something B
break;

但是,不应该表示像#34;如果找到目标,那么呢?"。在这种情况下,即使我在案例2之后没有休息,那么整数2仍然不符合条件案例3对吗? 那么,即使它不符合条件,为什么它会自动流过B做一些事情"案例3"?

感谢您帮助新手!

3 个答案:

答案 0 :(得分:2)

这是Java的C ++语言遗产,后者又从C语言继承而来。

如今,突破的实际用法很少见,有些编辑甚至会在遗失的break语句中添加警告(空case除外,例如case 1: case 2 : ...)。

另请参阅:https://softwareengineering.stackexchange.com/questions/162574/why-do-we-have-to-use-break-in-switch

答案 1 :(得分:2)

您可以将案例视为您输入交换机的点以及您离开它的中断点。在许多情况下,它可能有用,例如你有一定程度的积分奖励,即3分赢得一只猫,4胜一只猫和一只狗,5胜一只猫你可以写一只狗和一只猴子:

switch(points){
   case 5:
       win(monkey);
   case 4:
       win(dog);
   case 3:
       win(cat);
}

答案 2 :(得分:1)

从某种意义上说,认为代码足够智能,可以到达需要的位置,但又不够智能,无法返回。一旦它进入并完成了它的工作,就需要告诉执行线程退出,否则它将继续执行它旁边的任何代码。

因此,请始终使用break语句。

case 2: // execute whatever is here..
   break; // now get out
case 3: // so that this doesn't get executed
   break;