Javaのインデックス番号を指定するfor文について解説します。
- Javaのfor文の書き方が知りたい。
- for文はどんな時に使うのか?
- for、for-each文との違いは何だろう?
このような内容について解説します。
私はWEB開発中心に、フロントエンド、サーバーサイド、サーバー構築など経験豊富なエンジニアです。
これからプログラミングを始める方に向けて、少しでも分かりやすく解説していきたいと思います。
for文が使えるようになりますと、同じようなプログラムを書かなくて済むことが多くなり、スッキリとしたソースコードが書けるようになります。
まずはfor文の処理イメージだけでも覚えていただければと思います。
それでは行きましょう!
目次
for文の書き方
基本的な書き方
for文の基本的な書き方と3つの式について、処理イメージと表で表してみました。
処理イメージ:

名称 | 使い方 | 意味 |
---|---|---|
初期化 | i = 0 | forのカッコ内で使用する変数に初期値を指定する |
条件式 | i < 5 | ループを続けるための条件を記述する |
増減式 | i++ | ループが一周したときに変数の増減を記述する |
次にソースコードで書いてみます。
i の初期値を0として、1つずつ増加しながら「5」より下の数字を表示します。
セミコロン(;)は忘れずに記述しましょう。
// 「5」より下の数字を表示する for (Integer i = 0; i < 5; i++) { System.out.println(i); }
実行結果:

forの条件式が「i < 5」なので、「01234」が表示できました。
break(抜け出す)
for文を途中で抜け出すには、「break;」を使用します。
先ほどの「01234」を表示するソースコードで、if文で「3」になったら抜け出すように変更してみます。
for (Integer i = 0; i < 5; i++) { // 「3」の時にループを抜け出す if (i == 3) { break; } System.out.println(i); }
実行結果:

「3」でループを抜け出しましたので、「012」までが表示されました。
continue(スキップ)
for文の途中でスキップするときは、continueを使用します。
if文で「3」のときだけスキップしてみます。
for (Integer i = 0; i < 5; i++) { // 「3」の時はスキップする if (i == 3) { continue; } System.out.println(i); }
実行結果:

「3」だけスキップされて、「0124」が表示されました。
for文はどんな時に使うのか
配列をfor文でループするときによく使います。
配列のループ
配列の変数「list」をfor文でループしてみます。
配列番号(インデックス番号)は0番から振られてますので、for文の初期化に「Integer i = 0」をセットして「i++」で1ずつ増加させながら、「i < list.size()」になるまでループさせます。
これによって「配列の数だけループ」することができます。
気を付けたい点は、配列番号は「0、1、2」ですが、配列の数は「3」つであること。
なので、「3よりiが小さい場合ループ」させるように「i < list.size()」を指定することが大事です。
ArrayList<String> list = new ArrayList<String>(Arrays.asList("バナナ", "イチゴ", "すいか")); for (Integer i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
実行結果:

配列の中身がすべて表示できました。
for、for-each文との違い
最後にfor、foreach文との違いについてです。
PHPなどの他のプログラミング言語では、forはインデックス番号、foreachは配列のコレクションとはっきりと分かれているのですが、
Javaの場合はどちらもfor文です。
同じ「for文」だと説明がややこしいので、
この記事では「for-each文」と呼ばせていただきます。
話を戻しまして、、
ArrayListのような配列を使う分には、for文でもfor-each文でもどちらでも記述することができます。
まずは同じ配列をfor、for-each文で表示するソースコードです。
ArrayList<String> list = new ArrayList<String>(Arrays.asList("バナナ", "イチゴ", "すいか")); System.out.println("◆for文で実行"); for (Integer i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } System.out.println("◆for-each文で実行"); for (String value : list) { System.out.println(value); }
実行結果:

同じ配列をfor、for-each文で、同じ結果になるよう表示してみました。
このような単純な配列操作であれば、for-each文の方がスッキリと書けることが多いですが、インデックス番号で条件分岐させたいときなどは、for文の方が書きやすいです。
まとめ
いかがだったでしょうか。
Javaのfor文について次の内容で解説しました。
- for文の書き方(基本的な書き方、breakで抜け出し、continueでスキップ)
- for文はどんな時に使うのか(配列のループ)
- for、for-each文との違い
for文は数字でループさせることが多く、特に配列のArrayList.size()の数とインデックス番号の違いで頭が混乱することが多いです。
もし混乱するようでしたら、少しずつデバッグしながら配列のイメージ図を手書きでどういう風にループさせるかを整理すると良いでしょう。