タイトル: 繰り返し制御文
Javaの繰り返し制御文の記事です。同じ処理を複数回実行するための構文を集めています。
子ページからそれぞれの制御文を選択してください。
本ページの子ページ一覧
| 構文 | 用途 |
|---|---|
| for文 | 回数が決まっている繰り返し |
| 拡張for文 | 配列・コレクションを順に処理(foreach) |
| while文 | 条件が真の間繰り返し |
| do while文 | 1回は必ず実行してから条件判定 |
| continue文 | その回の残りをスキップして次へ |
| break文 | ループを途中で抜ける |
基本構文の早見
for文
|
for (int i = 0; i < 10; i++) { |
拡張for文(foreach)
|
int[] nums = {1, 2, 3, 4, 5}; |
while文
|
int i = 0; |
do while文
|
int i = 0; |
break / continue
|
for (int i = 0; i < 10; i++) { |
使い分けの目安
| 場面 | 推奨 |
|---|---|
| 回数が決まっている | for |
| 配列・コレクションを全部 | 拡張for(foreach) |
| 条件が成立する限り続ける | while |
| 最低1回は実行 | do while |
| 関数型風の流暢な記述 | Stream API(list.forEach(...)等) |
Stream API(Java 8以降)
新しいコードでは Stream API を使う場合も多いです。
|
List |
注意点
- 無限ループ: 条件が常に真になる場合は
break必須 - off-by-one:
i <= lengthとi < lengthの混同に注意 - ループ内でコレクション変更: 拡張forでコレクションを変更すると
ConcurrentModificationException。Iteratorを直接使うか、新リストを作る - ネストループの脱出:
breakは1段階のみ。多段脱出にはラベルを使う