ループ処理を行う場合、特定の条件だった場合処理を行いたくないことや特定の条件を見つけた場合にループ処理を終えたい場合など
ループ処理を中断させたい時や特定の条件の場合に現在のループから抜けて次のループ処理を行いたいときにbreakやcontinueを使用します。
繰り返し処理の中断
break文とcontinue文の2種類の中断方法を紹介します。
break文はループ処理を中断させ、continue文はループ処理を次の周に飛ばす動きとなります。
実際にサンプルコードで動きを確認してみます。
break文
breakを囲んでいる最も内側の繰り返しブロックが中断されます。
while文でやfor文を中断したい場合に使用しますがforEach()を使ったループの場合、
break文がcontinue文の動きになるので気をつけましょう。
サンプルコードではListに格納した値を確認しつつ特定条件の場合にbreakさせます。
import java.util.ArrayList;
import java.util.List;
public class VariablePractice {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("apple");
list.add("melon");
list.add("orange");
list.add("banana");
for (int i = 0; i < list.size(); i++) {
// 「orange」があった場合breakさせる
if (list.get(i).equals("orange")) {
break;
} else {
System.out.println(list.get(i));
}
}
System.out.println("ループ処理終了");
}
}
実行結果:
apple
melon
ループ処理終了
List内の「orange」以降が出力されていないですね。
if文の条件でbreakを行い、break後ループ処理の外の処理に進んでいることが確認できます。
continue文
continue文は今の周回を中断して、同じループ処理の次の周回に進みます。
サンプルコードではループの初回以降を出力させるようcontinueを使って実装してみます。
import java.util.ArrayList;
import java.util.List;
public class VariablePractice {
public static void main(String[] args) {
List<String> numList = new ArrayList<>();
numList.add("one");
numList.add("two");
numList.add("three");
numList.add("four");
for (int i = 0; i < numList.size(); i++) {
// 初回ループの判定
if (i == 0) {
continue;
} else {
System.out.println(numList.get(i));
}
}
System.out.println("ループ処理終了");
}
}
実行結果:
two
three
four
ループ処理終了
実行結果からループの初回(「one」)が出力されていないことが確認できました。
まとめ
break文とcontinue文の書き方について紹介しました。
単語の意味でなんとなく動きを覚えて実際に実装するときに想定結果を得れるようにしましょう。