ループ処理では、繰り返し処理の途中で、繰り返し処理の末尾に飛ばすことができます。
この処理を行う命令が「continue」です。以下、その例を示します。
int a = 0; for (int i = 1; i <= 100; i ++) { ←─────┐ if (i % 2 == 0) { │ // iを2で割った値が0(偶数)ならば │ // a += 1;の行に行かず │ //繰り返し処理の末尾に飛ぶ │ continue; ────────────┐ │ } │ │ a += i; // 奇数の場合だけ加算 │ │ │ │ 【末尾】←──────────────┘ │ 末尾に来たら、変化式の処理に移行する───┘ }
入れ子になったループ処理では、breakと同じように、continueでもラベルを使って対象のfor文を指定できます。
以下、その例を示します。
int a = 0; outer: for (int i = 1; i <= 10; i ++) { for (int j = 1; j <= 10; j ++) { if ((i * j) % 2 == 0) { // i*jが偶数なら外側のfor文に飛ぶ System.out.println(i + "*" + j + " 偶数"); continue outer; } a += i * j; System.out.println(i + "*" + j + " " + a); } } System.out.println("結果 " + a);
1*1 1 1*2 偶数 2*1 偶数 3*1 4 3*2 偶数 4*1 偶数 5*1 9 5*2 偶数 6*1 偶数 7*1 16 7*2 偶数 8*1 偶数 9*1 25 9*2 偶数 10*1 偶数 結果 25