如何从while循环内的if条件中断while循环?

Posted

技术标签:

【中文标题】如何从while循环内的if条件中断while循环?【英文标题】:How to break a while loop from an if condition inside the while loop? 【发布时间】:2014-06-26 09:20:31 【问题描述】:

我想打破下面有 if 语句的格式的 while 循环。如果该 if 语句为真,则 while 循环也必须中断。任何帮助将不胜感激。

while(something.hasnext()) 
   do something...
   if(contains something to process)
      do something
      break if condition and while loop
   

【问题讨论】:

你在问题​​中说出了答案! break if loop do while loop 让我很困惑。我以为有两个循环。 你不能说if(true)break; 【参考方案1】:

break 关键字正是这样做的。这是一个人为的例子:

public static void main(String[] args) 
  int i = 0;
  while (i++ < 10) 
    if (i == 5) break;
  
  System.out.println(i); //prints 5

如果您实际使用的是嵌套循环,则可以使用to use labels。

【讨论】:

@Codelearn14 你一直这么说,但不管你说多少次都是假的。 @Codelearn14 你能发布代码示例来证明你在说什么吗?也许if 的条件永远不会满足,从而阻止break 被调用。 是的,我也这么认为。非常抱歉,感谢您的帮助 @Codelearn14 我添加了一个简单的示例,您可以运行它来确认行为。 我真希望@Codelearn14 没有删除他们的 cmets,因为这个论点看起来很搞笑。【参考方案2】:

“如果”不是循环。只需在 "if" 中使用 break,它就会从 "while" 中跳出。

如果您需要使用真正的嵌套循环,Java 具有标记中断的概念。你可以在循环之前放一个标签,然后用标签的名字作为参数来中断。它将在标记循环之外中断。

【讨论】:

【参考方案3】:
while(something.hasnext())
do something...
   if(contains something to process)
      do something...
      break;
   

只需使用break语句即可;

例如:这只是打印“Breaking...”

while (true) 
     if (true) 
         System.out.println("Breaking...");
         break;
     
     System.out.println("Did this print?");

【讨论】:

以上是关于如何从while循环内的if条件中断while循环?的主要内容,如果未能解决你的问题,请参考以下文章

循环语句之while循环

00011_循环语句while

java循环语句while与do-while

几种循环语句

while循环

结合“if”和“while”,当“if”条件满足时如何跳出所有嵌套循环?