Java 满足条件后如何从循环中断开

Java 满足条件后如何从循环中断开,java,loops,while-loop,break,Java,Loops,While Loop,Break,嗨,在过去的一个小时里,我一直试图打破这个循环,并继续下去,因为我已经满足了我的条件一次。我的应用程序几乎读取一系列行并对其进行分析,然后打印声明的变量。线条的外观示例(不包括“.”): 10 c=9+3 20 a=c+1 30打印c 40转到20 50端 它做的一切都是对的,当它到达第40行时,会像预期的那样到达第20行,但我希望它能够到达第50行,因为它已经到达了第40行。这是我的这部分代码: while(booleanValue) { if(aString.substring(

嗨,在过去的一个小时里,我一直试图打破这个循环,并继续下去,因为我已经满足了我的条件一次。我的应用程序几乎读取一系列行并对其进行分析,然后打印声明的变量。线条的外观示例(不包括“.”):

  • 10 c=9+3
  • 20 a=c+1
  • 30打印c
  • 40转到20
  • 50端
它做的一切都是对的,当它到达第40行时,会像预期的那样到达第20行,但我希望它能够到达第50行,因为它已经到达了第40行。这是我的这部分代码:

while(booleanValue)
{
    if(aString.substring(0, 4).equals("goto"))
    {
        int chosenLine = Integer.parseInt(b.substring(5));
        if(inTheVector.contains(chosenLine))
        {
            analizeCommands(inTheVector.indexOf(chosenLine));
            i++;
        }
        else
        {
            System.ou.println("Line Was Not Found");
            i++;
        }
    }

    else if(aString.substring(0, 3).equals("end"))
        {
            System.out.println("Application Ended");
            booleanValue = false;
        }
}

在满足条件后,使用
break
语句完全中断循环。Pol0nium关于使用
continue
的建议是不正确的,因为这只会停止循环的当前迭代

while(foo)
{
    if(baz)
    {
        // Do something
    }
    else
    {
        // exit condition met
        break;
    }
}
所有这些都已经说过了,良好的形式要求您需要干净的入口和出口点,以便观察者(可能是您自己,稍后重新访问代码)可以轻松地遵循其流程。考虑更改控制while循环本身的布尔值。

while(foo)
{
    if(baz)
    {
        // Do something
    }
    else
    {
        // Do something else
        foo = false;
    }
}
如果出于某种原因,您无法触摸控制while循环的布尔值,则只需使用一个专门用于控制while的标志来复合条件:

while(foo && bar)
{
    if(baz)
    {
        // Do something
    }
    else
    {
        // Do something else
        bar = false;
    }
}

您可以使用
booleanValue
保持代码不变,并切换到do-while循环

do {
 // ... existing code
} while (booleanValue);
但是,要回答您的特定问题,您可以始终使用java
break
关键字。
continue
关键字用于跳过循环块的其余部分并进入另一个循环迭代

如果你把这个放在检查其他任何东西之前,你会立即退出循环

if(aString.substring(0, 3).equals("end")) {
    break;
}

作为附加提示,您可能希望使用或而不是子字符串()。这样,如果使用1位或3位(或更多)数字,您的代码仍然可以工作。

几乎没有改进:您可以将
aString.substring(0,4).equals(“goto”)
替换为
aString.startsWith(“goto”)
。对于短于4个字符的字符串,它更具可读性和安全性。您需要一个命令来说出
if语句
,并对其进行计算。也许“continue”关键字可以工作?我在格式化代码时注意到,在第一个
if
中缺少一个
,您的代码顺序很奇怪
if-else if-else
else if
应该在
else
之前。即使使用do while,它也会保持循环。问题是它没有到达第50行。它在第20行和第40行之间不断循环。