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 に準拠

ラベル付きステートメントは、すぐに含まれるステートメントを実行することによって実行されます。ステートメントが識別子によってラベル付けされ、含まれているステートメントが同じ識別子での中断のために突然完了する場合、ラベル付けされたステートメントは正常に完了します。ステートメントの突然の完了の他のすべてのケースでは、ラベル付きステートメントは同じ理由で突然完了します。

于 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 に答える