Java continueの使い方

この記事のポイント

Javaのcontinue文はループ処理において特定の条件下で現在の反復をスキップし、次の反復に進むための制御文です。この記事では、Java continueの基本から実践的な活用方法まで、具体的なコード例を交えて解説していきます。

  • continue文によるループ内の処理スキップと次の反復への移行
  • for文、while文、do-while文での基本的な使用パターン
  • ラベル付きcontinueによる入れ子ループの外側制御

この記事を通して、Javaにおけるループ制御の理解を深めましょう。いずれも実務での条件分岐や、処理制御に応用できる内容です。

目次

continueとは?

continue文は、ループ処理の中で使用される制御文の一つです。この文が実行されると、その時点でのループ内の残りの処理をスキップし、次の反復処理へと移行します。for文while文、do-while文といったあらゆるループ構造で利用でき、特定の条件を満たす場合にのみ処理を飛ばしたい場合に効果的です。

条件分岐と組み合わせれば、不要な処理を省くこともできます。さらに、continue文とラベルと組み合わせて入れ子になった複数のループの中から、指定したループへ処理を移すことも可能です。

【関連】
Javaをもっと詳しく学ぶならpaizaラーニング

基本構文

continue文の基本的な構文は極めてシンプルで、ループ内に「continue;」と記述するだけです。以下に典型的な使用例を示します。

public class Main { public static void main(String[] args) { for (int i = 1; i <= 5; i++) { if (i == 3) { continue; } System.out.println(i); } } }

出力結果

1
2
4
5

このコードでは、変数iが3のときにcontinue文が実行され、その回のprintln文がスキップされます。そのため、3だけが出力されず、1、2、4、5が表示されます。

while文での使用例も見てみましょう。

public class Main { public static void main(String[] args) { int count = 0; while (count < 5) { count++; if (count == 2) { continue; } System.out.println("カウント: " + count); } } }

出力結果

カウント: 1
カウント: 3
カウント: 4
カウント: 5

while文においても同様に、条件を満たした場合にループの先頭に戻り、次の反復が開始されます。このように、continue文はループの種類に関係なく一貫した動作をします。

実用例

ここからは、実際の開発現場で役立つcontinue文の具体的な使用例を紹介します。データ処理、バリデーション、条件に応じた処理の選択など、さまざまな場面で有効です。

各サンプルコードでは、continue文を使うことでどのように処理が簡潔になるかを示していきます。それぞれのコード例は、実行結果も含めて動作を確認できる内容です。実際に試しながら理解を深めてください。

偶数のみを出力する処理

数値のリストから偶数だけを抽出して表示したい場合、continue文を使うことで奇数をスキップできます。

public class Main { public static void main(String[] args) { for (int number = 1; number <= 10; number++) { if (number % 2 != 0) { continue; } System.out.println("偶数: " + number); } } }

出力結果

偶数: 2
偶数: 4
偶数: 6
偶数: 8
偶数: 10

このコードでは、1から10までの数値をループで処理し、奇数の場合にcontinue文で次の反復に進みます。結果として、偶数のみが出力されます。剰余演算子を使った条件判定とcontinue文の組み合わせにより、簡潔に目的の処理が実現できています。

配列内の特定要素をスキップする処理

配列を処理する際に、特定の値を除外したい場合があります。continue文を使えば、該当する要素だけをスキップできます。

public class Main { public static void main(String[] args) { String[] animals = {"イヌ", "ネコ", "ウサギ", "ネコ", "トリ"}; for (String animal : animals) { if (animal.equals("ネコ")) { continue; } System.out.println(animal); } } }

出力結果

イヌ
ウサギ
トリ

動物名の配列から「ネコ」を除外して出力する例です。拡張for文を使い、各要素を順番に確認しながら、条件に合致する要素はスキップしています。このパターンは、データのフィルタリング処理でよく使われます。

入れ子ループでのラベル付きcontinue

入れ子になったループ構造では、ラベルを付けることで外側のループを制御できます。

public class Main { public static void main(String[] args) { outer: for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { if (i == 2 && j == 2) { continue outer; } System.out.println("i=" + i + ", j=" + j); } } } }

出力結果

i=1, j=1
i=1, j=2
i=1, j=3
i=2, j=1
i=3, j=1
i=3, j=2
i=3, j=3

ラベル「outer」を外側のfor文に付けることで、内側のループから外側のループの次の反復に移行できます。i=2、j=2の組み合わせで条件が成立し、外側ループの次の反復(i=3)に進みます。複雑なループ制御が必要な場面で有効です。

リスト処理での条件分岐

リスト内の要素を処理する際、特定の条件を満たさない要素をスキップする例です。

import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> scores = new ArrayList<>(); scores.add(85); scores.add(42); scores.add(90); scores.add(55); scores.add(78); for (int score : scores) { if (score < 60) { continue; } System.out.println("合格点: " + score); } } }

出力結果

合格点: 85
合格点: 90
合格点: 78

このコードでは、テストの点数を格納したリストから60点未満をスキップし、合格点のみを出力しています。continue文により、不合格の点数を処理せずに次の要素に進むことができます。データの選別処理において、コードの可読性を保ちながら効率的に実装できる方法です。

文字列処理での空白スキップ

文字列配列を処理する際、空文字列や空白のみの要素を除外したい場合にcontinue文が役立ちます。

public class Main { public static void main(String[] args) { String[] words = {"リンゴ", "", "バナナ", " ", "オレンジ"}; for (String word : words) { if (word.trim().isEmpty()) { continue; } System.out.println("フルーツ: " + word); } } }

出力結果

フルーツ: リンゴ
フルーツ: バナナ
フルーツ: オレンジ

trimメソッドで前後の空白を除去した後、isEmptyで空文字列かどうかを判定しています。空白のみの要素や空文字列はスキップされ、有効なデータのみが処理されます。実際の業務システムでは、ユーザー入力のバリデーション処理などでこのパターンが頻繁に使われます。

範囲外の値を除外する処理

数値の範囲チェックを行い、範囲外の値を処理対象から除外する例です。

public class Main { public static void main(String[] args) { int[] temperatures = {15, 35, 22, 18, 40, 25}; for (int temp : temperatures) { if (temp < 20 || temp > 30) { continue; } System.out.println("適温: " + temp + "度"); } } }

出力結果

適温: 22度
適温: 25度

温度データの配列から、20度以上30度以下の範囲内の値のみを抽出しています。OR条件で範囲外を判定し、該当する場合はcontinue文でスキップします。センサーデータの処理や統計処理など、有効な範囲のデータだけを扱いたい場面で活用できます。

複数条件での処理制御

複数の条件を組み合わせて、特定のパターンに該当する場合のみ処理をスキップする例です。

public class Main { public static void main(String[] args) { for (int num = 1; num <= 20; num++) { if (num > 15) { continue; } if (num % 3 == 0) { continue; } if (num % 5 == 0) { continue; } System.out.println("対象: " + num); } } }

出力結果

対象: 1
対象: 2
対象: 4
対象: 7
対象: 8
対象: 11
対象: 13
対象: 14

このコードでは、3または5で割り切れる数と、15より大きい数をスキップしています。複数のcontinue文を使い分けることで、複雑な条件分岐を整理しながら記述できます。ビジネスロジックにおける多段階のフィルタリング処理などで、このような構造が有効です。

まとめ

continue文は、ループ処理において特定の反復をスキップし、次の反復に進むための制御文です。この記事では、基本構文から実践的な活用例まで、さまざまなパターンを紹介しました。適切に使用することで、コードの可読性を保ちながら柔軟なループ制御を行うことができます。

continueの活躍する場面

  • 配列やリストから条件に合わない要素を除外する処理
  • データのバリデーション時に無効な値をスキップする処理
  • 入れ子ループの中で、条件によって現在の処理だけを飛ばしたい場面

重要なポイント

  • continue文はループ内の残りの処理をスキップして次の反復に進む
  • ラベル付きcontinueを使って外側ループへ移動可能
  • 条件分岐と組み合わせて処理を整理できる

これらの基礎知識を身につけることで、より読みやすく保守性の高いコードを書けるようになります。実際のプログラミングでは、状況に応じて適切に活用してください。

レベルを更に上げたい方はpaizaプログラミングスキルチェック

  1. paizaラーニングトップ
  2. リファレンス
  3. Javaのリファレンス記事一覧
  4. Java continueの使い方