当前位置: 首页 > 面试题库 >

在Java中使用break退出循环是不好的做法吗?

幸乐湛
2023-03-14
问题内容

我想知道使用break语句退出循环而不是满足循环条件是否是“坏习惯” ?

我对Java和JVM的了解不足,无法知道如何处理循环,因此我想知道我是否通过这样做忽略了一些关键的事情。

这个问题的重点:是否有特定的性能开销?


问题答案:

好主啊 有时,可能会在满足整体要求的循环中发生某些事情,而不满足逻辑循环条件。在这种情况下,break用于阻止您毫无意义地循环。

String item;

for(int x = 0; x < 10; x++)
{
    // Linear search.
    if(array[x].equals("Item I am looking for"))
    {
       //you've found the item. Let's stop.
       item = array[x];
       break; 
    }
}

在此示例中更有意义的是。每次找到后都继续循环到10,还是循环直到找到该项目并停止?或者说成现实世界;当您找到钥匙时,您一直在寻找吗?

编辑以回应评论

为什么不设置x11打破循环?这是毫无意义。我们有break!除非您的代码做出的假设x肯定比10以后更大(并且可能不应该这样),否则只使用即可break

为了完整起见进行编辑

肯定还有其他模拟方法break。例如,在循环中为终止条件添加额外的逻辑。说这是无意义的循环或使用break是不公平的。如前所述,while循环通常可以实现类似的功能。例如,按照上面的示例。

while(x < 10 && item == null)
{
    if(array[x].equals("Item I am looking for"))
    {
        item = array[x];
    }

    x++;
}

使用break简单意味着您可以通过for循环实现此功能。这也意味着,只要您希望循环的行为不同,就不必继续在终止逻辑中添加条件。例如。

for(int x = 0; x < 10; x++)
{
   if(array[x].equals("Something that will make me want to cancel"))
   {
       break;
   }
   else if(array[x].equals("Something else that will make me want to cancel"))
   {
       break;
   }
   else if(array[x].equals("This is what I want"))
   {
       item = array[x];
   }
}

而不是while loop带有如下终止条件的:

while(x < 10 && !array[x].equals("Something that will make me want to cancel") && 
                !array[x].equals("Something else that will make me want to cancel"))


 类似资料:
  • 这在本质上不像那样工作吗?使用它甚至是好的实践吗?这让我很不安。

  • 本文向大家介绍Java中break、continue、return在for循环中的使用,包括了Java中break、continue、return在for循环中的使用的使用技巧和注意事项,需要的朋友参考一下 引言:在使用循环的时候,循环里面带有break、continue、return的时候经常弄混,今天特意整理了下,以待后用...  打印结果: 打印结果: 打印结果: 内层for循环结束… 打印

  • 问题内容: 我的问题如下。我应该避免在Angular应用程序中使用任何种类的jQuery代码,因为与DOM交互只有一件事是合法的。另一个问题是,是否有人遇到无法找到其他解决方案但只能用jQuery快速编写代码的问题。 谢谢! 问题答案: 是的,这是一个不好的做法,但是有时它可以为您节省很多时间,特别是在您寻找插件时,仅在必要时执行此操作,并在其他解决方案可用时记下备注以将其切换回原来的状态。

  • 出现的问题是,当用户确实输入了一个正数时,它仍然忽略输入,并要求用户再次输入一个正整数。我想我只是没有正确退出循环,但我不确定是如何退出的。

  • 问题内容: 在Java中退出/终止while循环的最佳方法是什么? 例如,我的代码当前如下: 问题答案: 用途: 但是,如果您的代码看起来 完全 像您指定的那样,则可以使用普通循环并将条件更改为:

  • 例如,如果我想将设置为数组中不等于0的第一个元素,我可以编写: 这是不好的做法吗? 此外,希望这是一个足够基本的场景,不要太固执己见。