是否可以退出if语句并返回内部for循环?

时间:2013-01-18 04:23:13

标签: java if-statement for-loop

是否有命令退出内部for循环中的if语句并让它只通过内部for循环?

例如:

for (int i = 0; i < blah.length; i++) {
    blh = scan.nextDouble();            
    blah[i] = blh;

    if(scores[i] < MIN || scores[i] > MAX_SCORE) {
        errFlag = true;
        System.out.println("ERROR: Enter numbers in the range of " +
            MIN + "-" + MAX_SCORE + "!");
        System.out.print("ERROR: Enter all " + numStudents + " scores again: ");
        errFlag = false;
    }                       
}

3 个答案:

答案 0 :(得分:10)

您可以使用标签栏

FOUND: {
    for(Type mt: TypeList)
       if(condtion(mt))
            break FOUND;
    // not found code here
}

根据Java Language Specification 14.7

  

通过执行立即包含的Statement来执行带标签的语句。如果语句由标识符标记,并且由于中断了相同的标识符而包含的语句突然完成,则标记的语句正常完成。在突然完成声明的所有其他情况下,标签声明因同样的原因而突然完成

答案 1 :(得分:3)

如果您希望它退出if语句,但仍保留在for循环中,则可以使用continue语句。它就像一个break语句,但它只是跳过循环的剩余部分,并在循环开始时继续。

答案 2 :(得分:1)

其他选择:

如果你想跳过if块中的其他代码但不打算打破循环,可以在新方法中提取该代码并在其间返回(基于所需条件),这样你可以实现你的目的(如果我理解正确的话)