是否有命令退出内部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;
}
}
答案 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
块中的其他代码但不打算打破循环,可以在新方法中提取该代码并在其间返回(基于所需条件),这样你可以实现你的目的(如果我理解正确的话)