Javaの continue文の詳しい説明

 
 
ループを早い段階で強制的に繰り返すと便利な場合があります。つまり、ループの実行を継続したいが、今回はループ本体の残りの部分を繰り返すステートメントを無視したい場合があるため、 Java はcontinue ステートメントを提供します。 continue ステートメントは、break ステートメントを補完します。

 

Breakについては前項「 JavaのBreak文の詳細解説」で学びましたが、ここではContinue文を中心に説明します。 Break ステートメントと同様に、通常の制御フローを中断します。 continue ステートメントは、最も内側のループの先頭に制御を移します。

continue 文は、ループ本体内の残りの文をスキップして次のループを強制的に実行するもので、その機能はループを終了する、つまりループ本体内の未実行の文をスキップしてループを終了するかどうかを判断することです。次回ループを実行します。

continue ステートメントはBreak ステートメントに似ていますが、ループの本体内でのみ使用できます。これと Break ステートメントの違いは、 continue はループ ステートメントを中断せず、現在の反復のループを終了し、次の反復に入る点です。簡単に言うと、Continue はループ ステートメントを無視する現在のループです。

注: continue ステートメントは while ステートメント、for ステートメント、または foreach ステートメントのループ本体内でのみ使用できます。それ以外の場所で使用すると構文エラーが発生します。

ループ本体で continue ステートメントをラベル付きまたはラベルなしで使用する方法は 2 つあります。構文形式は次のとおりです。

continue //不带标签
continue label //带标签,label是标签名

例を見てみましょう。コードは次のとおりです。

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
for (int i = 0; i < numbers.length; i++) {
    if (i == 3) {
        continue;
    }
    System.out.println("Count is: " + i);
} 

上記プログラムコードでは、条件i==3の場合に continue 文を実行すると、 continue 文によりループが終了し、ループ本体内の continue 以降の文は実行されず、次のループが実行されます。出力結果には 3 がありません。プログラムを実行した結果は次のようになります。

Count is: 0
Count is: 1
Count is: 2
Count is: 4
Count is: 5
Count is: 6
Count is: 7
Count is: 8
Count is: 9

ラベルを含む continue ステートメントのコード例は次のとおりです。

 public static void main(String[] args) {
    label1: for (int x = 0; x < 5; x++) {
        for (int y = 5; y > 0; y--) {
            if (y == x) {
                continue label1;
            }
            System.out.println(x+","+y);
        }
    }
    System.out.println("ゲームオーバー!");
} 

デフォルトでは、 continue は最も近い内側のループ (コードの 3 行目の for ループ) からのみジャンプします。コードの 2 行目の外側のループからジャンプしたい場合は、ラベル label1 を外側のループ、5 行目の continue 文 後からラベル label1 を指定し、条件が成立して continue 文が実行されると外側のループから抜け出すようにします。

プログラムを実行した結果は次のようになります。

0,5
0,4
0,3
0,2
0,1
1,5
1,4
1,3
1,2
2,5
2,4
2,3
3,5
3,4
4,5
ゲームオーバー!

次の例では、x == y がスキップされるため、出力はありません。

1,1
2,2
3,3
4,4

 

「 Javaの continue文の詳しい説明」についてわかりやすく解説!絶対に観るべきベスト2動画

【Java入門#8】for文を使った繰り返し処理
【Java入門#9】while文を使った繰り返し処理