我可以在嵌套的for循环中使用break来返回外部while循环,并在for循环中使用continue
来强制while循环继续运行吗?我无法将for循环条件纳入我的while循环条件,因此如果我无法继续特定的满足情况,while循环可能会停止。
while(...some conditions...){
...print stuff
for(...some instances are arrays, condition loop array...){
if(...index meets conditions...){
...print once, some arrays might meet condition on multiple index
break; //to prevent multiple printings
}
continue; //i don't want to force another while iteration if(false)
//or is this continue for(loop) anyway?
}
continue; //is this not essentially a while(true) loop with no return?
}
我无法将for循环条件纳入while条件的原因是因为在if(array == null)
和if-condition x == true
getArray()
这两个循环之间存在更多条件如果未传入数组则调用。大多数时间条件y
和z
从while循环打印但有时条件x
已满足,因此我需要for循环。这是在for-loop if(index true))
的打印之后,我需要再次循环才能再次使用?有时这可能发生在while循环条件下但是我可以看到它不会总是,如果for循环if(index false))
满足则更多我不想强制while循环,因为这可能会在运行时变得昂贵处理并可能导致无限循环。
PS我是一名初级程序员,我甚至不确定这是可能的吗? 或者说有道理,抱歉,如果它是一个愚蠢的问题
答案 0 :(得分:8)
你可以这样命名你的循环:
namedLoop: for(...) {
// access your namedloop
break namedLoop;
}
答案 1 :(得分:2)
您可break
带标签。
以下是一个完整的示例:
基本上代码与此类似:
:myLabel
for (...) {
for(...) {
...
break myLabel; // Exit from both for loops
}
}
答案 2 :(得分:0)
continue
和break
适用于当前范围,因此,如果您在for
内,它将适用于for
。
您可以将比较结果存储在布尔变量中,以检查是否要continue
。
我不是break
和continue
的忠实粉丝,在我看来它会影响可读性。您可以使用不同的代码结构来实现相同的行为。