『for文』の処理の流れ
『for文』の処理の流れ【ゼロから始めるJavaの基礎~その21~】
前ページでは、『for( )』のカッコの中に記述する、カウンタ変数や、変化式の内容についてご紹介をしてきました。
ここで一度サンプルの記述内容を確認しておきましょう。その後、プログラムを実行した際にどのような順番で処理が流れていくのかを確認します。
前回使用したサンプルを例に見ていきます。
【サンプル】
for(int i = 0; i < 10; i++) {
System.out.println("文字列を繰り返し表示する");
}
1、カウンタ変数の初期化(『int i = 0;』の部分)
何回目の繰り返しであるかを保存しておくための変数を準備しています。
今回のカウンタ変数は『int i = 0;』と記述されていることから、0からスタートすることが分かります。
2、条件式の記述
『{ }』の中に記述された処理を行うか、行わずに繰り返し処理を終了するかの判定を行う条件式を記述します。
今回は『i < 10;』となっていますので、『変数i』の値が10より小さい場合は『{ }』の中の処理が実行されます。
3、変化式の記述
カウンタ変数を増減させる式を記述します。
今回は『変数i』の値を1ずつ増やしたいので『i++』と記述しています。
↓インクリメント(++)について忘れてしまった方はこちらをご覧ください↓
4、処理の記述
『{ }』の中には繰り返し行いたい処理を記述します。
今回は文字列をコンソールに出力する処理を記述しています。
『for文』の処理の流れ
Javaのプログラミングコードは上から下へ進むという前提がありましたが、『for文』に関しては少し特殊な動きをしますので、コードの進行順序を確認しておきましょう。
下の図は先ほど紹介したサンプルコードに進行順の番号を振ったものです。
1周目から順番に、どのように進行するのかを見ていきますので、番号で式と動きを紐づけて見てもらえればと思います。
1周目
①:初期化式でカウンタ変数『i』に0が代入される。
②:条件式で『i < 10』の判定が行われ、結果が『true』となる。
③:②の結果が『true』なので『{ }』の中に記述された処理が実行される。
④:変化式『i++』が実行されて、カウンタ変数『i』の値が1になる。
2周目〜10周目
①:初期化式は2周目以降は無視される。
②、③、④:1周目と同様の処理が行われて、カウンタ変数の値が1ずつ増える。
11周目
①:初期化式は2周目以降は無視される。
②:条件式で『i < 10』の判定が行われるが、この時点で『i』の値は10になっているため、結果が『false』となる。
③:②の結果が『false』なので、『{ }』の中の処理は実行されず、繰り返しが終了する。(※繰り返しが終了することを『for文を抜ける』と言うこともあります。)
『for文』の処理の流れは掴めましたか?
『for( )』のカッコ内に記述されている3種類の式が異なるタイミングで実行されるために、少し複雑さを感じるかもしれません。
処理の流れの順番をもう一度確認し、番号が振られていなくても自分で処理の流れを追えるようになっておきましょうね。
最後に、カウンタ変数を繰り返しの中で使用するサンプルをご紹介します。
カウンタ変数は何回目の繰り返しであるかを保管しておく変数の他にも、出力する文字列の中で使われたり、繰り返し回数が偶数の場合を判断したりと様々な用途で使うことが出来ますので覚えておきましょう。
コードと実行結果を見て、そして実際に自分の手で動かしてみて、処理の流れも再確認してください。
【サンプル】
for(int i = 0; i < 10; i++) {
// カウンタ変数『i』の値を、処理の中で使用しています
System.out.println(i + 1 + "回目の繰り返しです");
}
実行結果
『for文』の基本的な使い方のご紹介は以上となります。
基本的な使い方を理解できたら、『拡張for文』とよばれる、配列と組み合わせた特殊な書き方であったり、繰り返しの処理の中でさらに繰り返しの処理を行う『for文のネスト』と呼ばれる書き方も身につけて行きましょう。
これらは番外編にまとめておきますので、こちらのページをご覧ください。