Javaにはラベル無しのcontinue文とラベル有りのcontinue文がある。
ラベル無しのcontinueは、continue文を含むもっとも内側の繰り返し制御文(for、while、do while)の残りの処理をスキップして、次の繰り返しを実行する。
public class Example {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
上記プログラムの実行結果を示す。
$ java Example
1
3
5
7
9
ラベル有りのcontinueは、ラベルを付けた繰り返し制御文(for、while、do while)の残りの処理をスキップして、次の繰り返しを実行する。
多重ループ内で外側の繰り返し処理の次の繰り返しを実行するには、ラベルを指定したcontinue文を使う。
package com.segakuin.example;
public class Example {
public static void main(String[] args) {
int i, j = 0;
outside: for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
if (1 == j) {
continue outside;
}
System.out.println("i = " + i + ", j = " + j);
}
}
}
}
上記プログラムの実行結果を示す。
i = 0, j = 0
i = 1, j = 0
i = 2, j = 0
Javaのcontinue文は、繰返し処理の途中で次の繰り返しへスキップする。continueと違い、breakは繰り返し処理(for、while、do while)を終了して抜け出すための制御文である。