1

是否有命令退出内部 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;
    }                       
}
4

3 回答 3

10

您可以使用标签块

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

根据Java 语言规范 14.7

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

于 2013-01-18T04:27:58.563 回答
3

如果你想让它退出 if 语句,但留在 for 循环中,你可以使用 continue 语句。它就像一个 break 语句,但它只是跳过循环的剩余部分,并在循环的开头继续。

于 2013-01-18T04:26:48.010 回答
1

其他选项:

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

于 2013-01-18T04:31:54.260 回答