この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:atom
更新日時:2026-05-13 06:56:38

タイトル: 繰り返し制御文

Javaの繰り返し制御文の記事です。同じ処理を複数回実行するための構文を集めています。

子ページからそれぞれの制御文を選択してください。

本ページの子ページ一覧

構文用途
for文回数が決まっている繰り返し
拡張for文配列・コレクションを順に処理(foreach)
while文条件が真の間繰り返し
do while文1回は必ず実行してから条件判定
continue文その回の残りをスキップして次へ
break文ループを途中で抜ける

基本構文の早見

for文

for (int i = 0; i < 10; i++) {
    System.out.println(i);
}

拡張for文(foreach)

int[] nums = {1, 2, 3, 4, 5};
for (int n : nums) {
    System.out.println(n);
}

List names = List.of("Taro", "Jiro");
for (String name : names) {
    System.out.println(name);
}

while文

int i = 0;
while (i < 10) {
    System.out.println(i);
    i++;
}

do while文

int i = 0;
do {
    System.out.println(i);
    i++;
} while (i < 10);

break / continue

for (int i = 0; i < 10; i++) {
    if (i == 5) break;      // ループ脱出
    if (i % 2 == 0) continue; // 偶数はスキップ
    System.out.println(i);
}

使い分けの目安

場面推奨
回数が決まっているfor
配列・コレクションを全部拡張for(foreach)
条件が成立する限り続けるwhile
最低1回は実行do while
関数型風の流暢な記述Stream API(list.forEach(...)等)

Stream API(Java 8以降)

新しいコードでは Stream API を使う場合も多いです。

List nums = List.of(1, 2, 3, 4, 5);

// forEach
nums.forEach(System.out::println);

// filter + map + sum
int sum = nums.stream()
    .filter(n -> n % 2 == 0)
    .mapToInt(Integer::intValue)
    .sum();

注意点

  • 無限ループ: 条件が常に真になる場合は break 必須
  • off-by-one: i <= lengthi < length の混同に注意
  • ループ内でコレクション変更: 拡張forでコレクションを変更すると ConcurrentModificationExceptionIterator を直接使うか、新リストを作る
  • ネストループの脱出: break は1段階のみ。多段脱出にはラベルを使う

関連