如何打破在while循环中继续嵌套for循环?

时间:2015-03-24 11:27:43

标签: java arrays loops break

我可以在嵌套的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()这两个循环之间存在更多条件如果未传入数组则调用。大多数时间条件yz从while循环打印但有时条件x已满足,因此我需要for循环。这是在for-loop if(index true))的打印之后,我需要再次循环才能再次使用?有时这可能发生在while循环条件下但是我可以看到它不会总是,如果for循环if(index false))满足则更多我不想强制while循环,因为这可能会在运行时变得昂贵处理并可能导致无限循环。

PS我是一名初级程序员,我甚至不确定这是可能的吗? 或者说有道理,抱歉,如果它是一个愚蠢的问题

3 个答案:

答案 0 :(得分:8)

你可以这样命名你的循环:

namedLoop: for(...) {
    // access your namedloop
    break namedLoop;
}

答案 1 :(得分:2)

您可break带标签。

以下是一个完整的示例:

https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/java/nutsandbolts/examples/BreakWithLabelDemo.java

基本上代码与此类似:

:myLabel


for (...) {
    for(...) {
        ...
        break myLabel; // Exit from both for loops
    }
}

答案 2 :(得分:0)

continuebreak适用于当前范围,因此,如果您在for内,它将适用于for

您可以将比较结果存储在布尔变量中,以检查是否要continue

我不是breakcontinue的忠实粉丝,在我看来它会影响可读性。您可以使用不同的代码结构来实现相同的行为。