Javaのbreakとは、繰り返し(for、while、do while)や条件分岐(switch)ブロックから抜け出すための制御文です。この記事ではbreakの使い方をご紹介します。
Javaのdo文でbreakを使う例を次に示す。
public class Example1 {
public static void main(String[] args) {
int i = 0;
do {
if (i >= args.length) {
break;
}
System.out.println(args[i]);
i++;
} while (true);
}
}
上記のJavaプログラムを実行した結果を次に示す。
$ java Example1 foo bar baz
foo
bar
baz
Javaのfor文でbreakを使う例を次に示す。
public class Example2 {
public static void main(String[] args) {
for (int i = 0; ; i++) {
if (i >= args.length) {
break;
}
System.out.println(args[i]);
}
}
}
上記のJavaプログラムを実行した結果を次に示す。
$ java Example2 foo bar baz
foo
bar
baz
Javaのwhile文でbreakを使う例を次に示す。
public class Example3 {
public static void main(String[] args) {
int i = 0;
while (true) {
if (i >= args.length) {
break;
}
System.out.println(args[i]);
i++;
}
}
}
上記のJavaプログラムを実行した結果を次に示す。
$ java Example3 foo bar baz
foo
bar
baz
int i = 0;
switch (i) {
case 0:
break;
default:
break;
}
Javaにはラベル無しのbreak文とラベル有りのbreak文がある。
ラベル無しのbreakは、break文を含むもっとも内側の制御文(for、while、do while、switch)を抜け出して終了する。
public class Example {
public static void main(String[] args) {
int i, j = 0;
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
if (5 == j) {
break;
}
}
}
System.out.println("i = " + i + ", j = " + j);
}
}
上記プログラムの実行結果を示す。
i = 10, j = 5
for、while及びdoのループ・ブロックにはラベルを付けることができる。ラベルとはループ・ブロックを一意に識別するための識別子である。
ラベルを付けたfor文の例を次に示す。
label: for (int i = 0; i < 10; i++) {
// do something
}
break文にはラベルを指定することができる。
break label;
ラベルを指定したbreak文は、最も内側のループを抜けるのではなく、指定したラベルを持つループを抜ける。
public class Example {
public static void main(String[] args) {
outside: for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (5 == j) {
break outside;
}
}
}
System.out.println("i = " + i + ", j = " + j);
}
}
上記プログラムの実行結果を示す。
i = 0, j = 5
breakは繰返し処理を終了するが、continueは次の繰り返し処理へスキップする。