こんにちは!エンジニアの中沢です。
Javaのfor文でループ処理をするときには、continue文を使って残りの処理をスキップして、次のループへ抜けることができます。この記事では、
- continue文とは
- for文のループをcontinue文でスキップする方法
- 多重ループをラベル付きcontinue文でスキップ方法
- 拡張for文でcontinue文を使う方法
- for文のループをbreak文で抜ける方法
というように、基本的な内容から応用的な使い方に関しても解説していきます。今回はfor文のループをcontinue文でスキップする方法についてわかりやすく解説します!
continue文とは
初めにcontinue文について解説します。continue文はループ処理の途中で、残りの処理をスキップして次のループ処理に移るときに使います。
break文はループ処理全体を終わらせてしまいますが、continue文は残りの処理をスキップした後に次のループ処理を開始するという違いがあります。continue文は最も内側の1つのループをスキップします。
多重ループのネストの外側までスキップする場合には、ラベル付continue文を使います。
for文のループをcontinue文でスキップする方法
次はfor文のループをcontinue文でスキップする方法を解説します。continue文はfor文やwhile文のようなループ処理でしか使えないので注意してください。continue文の使い方を覚えるために、次のプログラムで確認してみましょう。
public class Main {
public static void main(String[] args) {
String[] strArray = { "s", "a", "m", "u", "r", "a", "i" };
String str = "a";
for (int i = 0; i < strArray.length; i++) {
if (strArray[i].equals(str)) {
continue;
}
System.out.println(strArray[i]);
}
}
}
実行結果:
s
m
u
r
i
このプログラムでは文字列が”a”のときに、continue文で表示する処理をスキップしています。continue文でループ処理をスキップする方法が確認できました!
for文の詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。
【Java入門】for文、拡張for文、forEachの使い方
更新日 : 2019年6月25日
多重ループをラベル付きcontinue文でスキップする方法
最後に多重ループをラベル付きcontinue文でスキップする方法を解説します。ラベル付きcontinue文は次のように記述します。
ラベル: for (条件式) {
for (条件式) {
処理
continue ラベル;
}
}
ラベル付きcontinue文は、処理をスキップした後にラベルを設定したループの処理を続けるので、動作を間違えないように注意してください。ラベルはfor文と同じ行に書くように気をつけてください。
ラベル付きcontinue文の使い方を覚えるために、次のプログラムで確認してみましょう。
public class Main {
public static void main(String[] args) {
String[] strArray1 = { "s", "a", "m", "u", "r", "a", "i" };
String[] strArray2 = { "e", "n", "g", "i", "n", "e", "e", "r" };
loop: for (int i = 0; i < strArray1.length; i++) {
for (int j = 0; j < strArray2.length; j++) {
if (i > 2 || j > 2) {
continue loop;
}
System.out.println(strArray1[i] + " " + strArray2[j]);
}
}
}
}
実行結果:
s n
s g
a e
a n
a g
m e
m n
m g
このプログラムでは配列の3文字目までを表示して、それ以外はラベル付きcontinue文でスキップしています。ラベル付きcontinue文で多重ループをスキップする方法が確認できました!
拡張for文でcontinue文を使う方法
ここでは、拡張for文でcontinue文を使う方法を解説します。拡張for文でもfor文と同様にcontinue文を使うことができます。
次のプログラムで確認してみましょう。
public class Main {
public static void main(String[] args) {
String[] strArray = { "s", "a", "m", "u", "r", "a", "i" };
String str = "a";
for (String s : strArray) {
if (s.equals(str)) {
continue;
}
System.out.println(s);
}
}
}
実行結果:
s
m
u
r
i
拡張for文でcontinue文を使ってループをスキップすることができました。拡張for文の詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。
【Java入門】拡張for文とJava8のforEachの使い方総まとめ
更新日 : 2019年6月6日
for文のループをbreak文で抜ける方法
break文を使うとfor文のループ処理を中断してループから抜け出すことができます。詳しい使い方はこちらの記事で解説しているので、ぜひ確認してください。
【3分で解決Java】for文のループ制御(breakとcontinue)
更新日 : 2019年4月4日
まとめ
いかがでしたか?今回はfor文のループをcontinue文でスキップする方法について解説しました。ラベルの位置を間違えるとバグの原因になるので注意してくださいね。
もしcontinue文について忘れてしまったらこの記事を確認してください!