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端
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);
但是,要回答您的特定问题,您可以始终使用javabreak
关键字。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行之间不断循环。