【Java入門】for文の書き方、breakやcontinueも解説します

投稿日: 作成:   更新:

Javaのインデックス番号を指定するfor文について解説します。

  • Javaのfor文の書き方が知りたい。
  • for文はどんな時に使うのか?
  • for、for-each文との違いは何だろう?

このような内容について解説します。

私はWEB開発中心に、フロントエンド、サーバーサイド、サーバー構築など経験豊富なエンジニアです。
これからプログラミングを始める方に向けて、少しでも分かりやすく解説していきたいと思います。

for文が使えるようになりますと、同じようなプログラムを書かなくて済むことが多くなり、スッキリとしたソースコードが書けるようになります。

まずはfor文の処理イメージだけでも覚えていただければと思います。

それでは行きましょう!

for文の書き方

基本的な書き方

for文の基本的な書き方と3つの式について、処理イメージと表で表してみました。

処理イメージ:

名称使い方意味
初期化i = 0forのカッコ内で使用する変数に初期値を指定する
条件式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()の数とインデックス番号の違いで頭が混乱することが多いです。

もし混乱するようでしたら、少しずつデバッグしながら配列のイメージ図を手書きでどういう風にループさせるかを整理すると良いでしょう。