スライドショー

【Java入門】for文をcontinue文でスキップする(ラベルも解説)

こんにちは!エンジニアの中沢です。

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文について忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説