【Java】for文で繰り返し処理を行う!使い方や多重ループについて解説!

繰り返し処理を行う場合はfor文を使用します。

例えば、画面に50回文章を表示する必要があるとして、println()メソッドを50回使用することで実行はできます。
しかし、文章を100万回表示する必要があった場合どうしますか?
println()メソッドを100万回入力しても構いませんが、とても時間がかかって面倒です。

その際に、for文を使用すると、println()メソッドを1回書くだけで、何度でも実行できます。

また、for文の中にfor文を書くことで多重ループの処理を行うことができます。

今回はfor文の使って以下の場合で繰り返し処理を行っていきます。

⚫︎ 繰り返し処理を行う場合
⚫︎ 複数のデータの集まりから値を取り出す場合
⚫︎ 多重ループとは

for文とは

for文とは繰り返し処理のことであり、同じ処理を決まった感覚で、決まった回数分行います。
for文とは別にwhile文という繰り返し処理がありますが、こちらは「条件式がfalseになるまで繰り返す」という処理になります。

for文の書き方

for文の構文は下記のようになります。

初期化式は一度だけ実行されます。
次に、条件式が確認されます。ここで、条件式はブール式です。
条件式がtrueだと、forループの本体内のコードが実行されます。

次に、更新式が実行されます。
ここでも、条件式が確認され、条件式がtrueの場合、forループの本体内のコードが実行され、更新式が実行されます。
この処理は、条件式がfalseになるまで続きます。

条件式がfalseになると、forループは終了します。

無限ループに注意

ループを扱う際は常に注意が必要です。
これは、条件式を誤って設定すると、forループが永久に実行されるためです。
これは無限ループと呼ばれます。
次のサンプルコードを見てみましょう。

出力結果

Flytech
Flytech
Flytech
Flytech
… … …

ここでは、iの初期値が1で更新式はデクリメントになるので条件式(i <= 10)はfalseになることがなく、Flytechが無限に表示されます。 無限ループ間違えて実行してしまうと処理が終わらなくなるので、PCが止まったり、アプリが落ちたりするので無限ループはなるべく避けてください。

もし、無限ループになって抜け出したい場合はbreak句を使ってfor文から抜け出すようにしましょう。

for文を使ったサンプルコード

for文を使ったサンプルコードを見てみます。

繰り返し処理を行う場合

出力結果

ライン1
ライン2
ライン3
ライン4
ライン5
ライン6
ライン7
ライン8
ライン9
ライン10

ここで、初期化式は一度だけ実行されます。
iは1なので、条件式はtrueになり、println()メソッドが実行されます。

これで、更新式が実行されます。
更新式は今回インクリメントですので実行されるたびに、iが1ずつ増加します。

ここでも、条件式が確認され、同じ処理が繰り返されます。
この処理はiは11になるまで続き、iが11の場合、条件式(i <= 10)はfalseとなり、forループは終了します。

複数のデータから値を取り出す場合

複数のデータから値を取り出すには「拡張for文」を使用します。
拡張for文とは他の言語では「foreach」と呼ばれ、配列などの複数のデータが集合しているオブジェクトに対して処理を行うことができます。

出力結果

85
72
89
54
91

dataというint型の配列を拡張for文で取り出しています。
通常のfor文でも取り出すことはできますが、拡張for文だと回数を指定しないで取り出すことができるので配列などの集まりを取り出したい場合には拡張for文の方が便利です。

多重ループとは

繰り返し処理のの中に繰り返し処理があることを多重ループといいます。

多重ループを使ったサンプルコード

多重ループを使ったサンプルコードを見てみます。

九九表

多重ループを使って九九表を作成することができます。

出力結果

|1 |2 |3 |4 |5 |6 |7 |8 |9|
|2 |4 |6 |8 |10 |12 |14 |16 |18|
|3 |6 |9 |12 |15 |18 |21 |24 |27|
|4 |8 |12 |16 |20 |24 |28 |32 |36|
|5 |10 |15 |20 |25 |30 |35 |40 |45|
|6 |12 |18 |24 |30 |36 |42 |48 |54|
|7 |14 |21 |28 |35 |42 |49 |56 |63|
|8 |16 |24 |32 |40 |48 |56 |64 |72|
|9 |18 |27 |36 |45 |54 |63 |72 |81|

階段

また、多重ループを使って階段を作成することができます。

出力結果


**
***
****
*****
******
*******
********
*********

今回紹介したのは2重ループですが、3重、4重にしても構いません。
しかし、繰り返し処理のの中に繰り返し処理を書くのは難しいので注意してください。

まとめ

for文で繰り返し処理を行う

⚫︎ for文で同じ処理を決まった感覚で、決まった回数分、繰り返し処理を行う

⚫︎ 繰り返し処理を行う場合、無限ループには要注意であり、無限ループから抜け出すにはbreakを使用する

⚫︎ 配列などの集まりを取り出したい場合には拡張for文の方が便利

⚫︎ 繰り返し処理の中に繰り返し処理を書くと多重ループになるが多重が多いループには要注意

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報