Java 我怎么能';突破';是while循环,但仍然执行while循环?
我希望有一个while循环,如果某个条件为真,不要执行它下面的代码,然后继续while循环。 以下是一些伪代码:Java 我怎么能';突破';是while循环,但仍然执行while循环?,java,Java,我希望有一个while循环,如果某个条件为真,不要执行它下面的代码,然后继续while循环。 以下是一些伪代码: boolean poop while (poop){ if (player.isAwesome()){ Continue doing while loop but do not execute below code } poop = false; } 是的,我可以用这样的东西: boolean poop while (poop){ b
boolean poop
while (poop){
if (player.isAwesome()){
Continue doing while loop but do not execute below code
}
poop = false;
}
是的,我可以用这样的东西:
boolean poop
while (poop){
boolean stopPoop = false;
if (player.isAwesome()){
stopPoop = true;
}
if (!stopPoop){
poop = false;
}
}
然而,这有点混乱和不方便,我想知道是否有更好的方法
boolean poop = true;
while (poop){
if (player.isAwesome()){
//Continue doing while loop but do not execute below code
continue;
}
poop = false;
}
是的,没错,请使用continue
关键字。如果您想打破循环,可以使用break
关键字
如果您有嵌套循环,那么您也可以继续使用标签。我假设您使用java进行编码。 你所需要做的就是写作
continue;
在第行,您需要转到while循环检查语句。因此:
boolean poop
while (poop){
if (player.isAwesome()){
continue;
}
poop = false;
}
在这样的情况下,很难预测何时应该终止循环,我更喜欢使用
do {
if (player.isAwesome()){
//Continue doing while loop but do not execute below code
continue;
}
// This code will only execute once
} while (false);
这样就不需要布尔标志,因为它会污染循环外部的范围
我不鼓励(;)或
而(true)
使用,因为随着时间的推移,以这种方式编写的代码的维护可能会引入无限循环。我认为不需要poop变量。
你就不能用这个吗
while (player.isAwesome()){
Continue doing while loop but do not execute below code
}
谢谢这很有效。显然我可以“你可以在5分钟内接受答案”,所以我会接受它。非常有趣。我一定会记住这一点!有趣的构造。在我的真实代码中,这正是我所做的,但是我认为使用已有的布尔示例来进行伪代码会更容易。我真正的代码是“while(stop==1 | | stop==1)”。仅就记录而言,1表示此人单击“取消”,另一个表示他们单击“关闭”。