JAVA言語を使用している時に、ループ(繰り返し)処理を行いたい場合があると思います。そんな時に用いるのが「for文」と「while文」です。
while文は記述されている項目が少ないので理解し易いかと思いますが、for文は項目が色々とあって混乱している人もいるかもしれません。
for文
for文の特徴は、指定した回数ループ処理を行うのを目的として使われます。
for文の構造は以下のようになります。
for ( 初期化式 ; 条件式 ; 継続式 ) { // 処理内容 : }
項目 | 説明 |
---|---|
初期化式 | 変数の宣言と初期化をします。 |
条件式 | ループ処理を続ける条件を設定します。条件式の判定がtrueの場合、処理が実行されます。 |
継続式 | ループ処理が1回終わるごとに実行される内容を設定します。 |
具体的に図を用いて順を追って見ていきましょう。
項目 | 説明 |
---|---|
int i = 0 | 変数 iを初期値0で宣言 |
i< 5 | 変数iの値が5より小さい間ループ処理を続ける (5回ループ処理を続ける) |
i++ | ループ処理が1回終わるごとに、iをインクリメント(iの値を1増やす) |
①
まず初めに、変数iを初期値0で宣言します。
②
for文内の処理を実行するかのチェック(条件式)が実行されます。
処理1周目はiの値が0なので、条件式は「0 < 5」で判定はtrueとなります。
よってfor文内の処理が実行されます。
③
8行目の処理によって出力結果に「0」と表示されます。
④
for文内の処理が終わった(処理1周目が終わった)ので継続式が実行され( i++ )、iの値が1となります。
⑤
「②」と同様に再びfor文内の処理を実行するかのチェック(条件式)が実行されます。
iの値が1なので条件式は「1 < 5」で判定は今回もtrueとなります。
よって、再びfor文内の処理が実行されます。
⑤
処理5周目が終了したとき(出力結果には0,1,2,3,4と表示されている)、
継続式によってiの値は5となります。
⑥
「②」と同様に再びfor文内の処理を実行するかのチェック(条件式)が実行されます。
iの値が5なので条件式は「5 < 5」で今度の判定はfalseとなります。
よってこれでループ処理は終了となり、for文から抜け出します。
for文の式の省略について
for文の3つの式について説明しましたが、これらは省略して記述することが出来ます。
(1つだけ省略も可能ですし、3つ全部省略することも可能)
先ほどの図例を、省略したfor文に書き換えてみると下図のような感じになります。
条件式を省略すると、ループを継続するかどうかの判定が常にtrueとなります。
よって、ループを抜け出すための処理を記述しないと無限ループになってしまいますので注意しましょう。
While文
while文の特徴は、条件を満たしている間ループ処理を行うのを目的として使われます。
while文の構造は以下のようになります。
while ( 条件式 ) { // 処理内容 : }
項目 | 説明 |
---|---|
条件式 | ループ処理を続ける条件を設定します。 条件式の判定がtrueの場合、処理が実行されます。 |
for文の説明を見た方は、大体理解できるかと思います。
for文でのループ処理をwhile文で記述すると下図のようになります。
while文の式の省略について
while文では、for文のように条件式を省略することは出来ません。
無条件でループ処理させたい場合は、条件式がtrue判定となるような設定を行います。
条件式に無条件でループ処理をさせるような記述をした場合は、無限ループさせないように12行目のような抜け出す処理を記述しましょう。
まとめ
今回はループ処理において、初歩的な例を用いて説明してきました。
for文には拡張for文と呼ばれるものもありますし、ループ文の中にループ文を入れる(ネスト構造)こともあります。
ただしネストしすぎると何がどのような処理をしているか分かりにくくなるので、可読性が高くなるように色々と意識しながらプログラミングするといいでしょう。
【おすすめ記事】
➡人気No.1言語!Javaを学べるプログラミングスクール
➡一番人気の言語Javaを勉強できる学習サイト8選
➡Javaの本・参考書の評判
➡【Java入門】本の貸し借りで覚える引数と戻り値(return文)