for文が実行される仕組み

前回はfor文の書き方について説明しましたが、今回はそのfor文が実行される仕組みを解説したいと思います。

for文が実行される仕組み 目次

  1. for文の書き方おさらい
  2. カウンタ変数とは
  3. 継続条件の記述
  4. カウンタ変数の増減値を指定
  5. for文が実行される仕組み

1.for文の書き方おさらい

for文の書き方をもう一度おさらいします。

for (int i = 0; i < 回数; i++){
  繰り返し実行したい処理
}

先頭のforは決まり事で、後ろを()で括ります。その後ろに{}で括っています。最初の()の中では、繰り返す回数を指定する箇所です。後ろの{}の中では、繰り返し実行する処理を記述します。

()の中で指定された回数分、後ろの{}の中に記述された処理が繰り返されます。つまり、後ろの{}の中には1回分の処理しか記述しません。

2.カウンタ変数とは

()の中でセミコロンで区切られた構文の中で最初に出てくる構文は、カウンタ変数の宣言と初期化です。カウンタ変数とは、回数を記憶しておく為の変数のことですが、型や名前に決まりはありません。ですが、一般的にint型で名称をiを使用します。また、初期化する値も0である必要はありませんが、一般的には0で初期化します。

よく交通量調査でカチカチ押していますが、あれと同じような感じで、要するに数をカウントしています。カウンタ変数を0から初めて、処理を一回実行する毎に1つカウントアップさせ、5になったら終了という制御をしているので、処理が5回繰り返されることになります。

カウンタ変数の宣言と初期化

3.継続条件の記述

()の2つめの構文では、この繰り返し処理が実行される継続条件を指定しています。回数のところはプログラマが指定しますが、今回は5となりますので、カウンタ変数iが5よりも小さい間繰り返す、ということになります。

なお、この継続条件は、処理が実行される前に判定されますので、もしここを「i < 0」とした場合、処理が一回も実行されないことになります。

継続条件を指定

これは大丈夫ですよね。繰り返し実行したい処理を1回分だけ記述します。

4.カウンタ変数の増減値を指定

カウンタ変数は、初期化した値から始まりますが、処理を一回実行する毎にカウントアップする必要があります。for文の()の中の最後の構文では、このカウンタ変数のカウントアップ量を指定します。通常はインクリメント(1増やす)ですが、2増やしたり、逆にマイナスしたりすることも可能です。

カウンタ変数の増減値

5.for文が実行される仕組み

ここまでは前置きです。それでは、実際にfor文が実行される仕組みを解説します。

package pac01;

public class HelloWorld {
	public static void main(String[] args) {

		for(int i =  0; i < 5; i++){
		
			// 文字列を表示する
			System.out.println("こんにちは!");
		}
	}
}
------------------------------------------------------------
こんにちは!
こんにちは!
こんにちは!
こんにちは!
こんにちは!

これをフローチャートにすると次の様になります。

for文実行のフローチャート

オレンジの部分は一回しか実行されません。for文が開始されたら、まずはカウンタ変数iの初期化がされます。そして処理の実行の前にまず継続条件の判定がされて、条件に該当するなら(true)処理の実行がされて、カウンタ変数の増減がされます。

その次は、また継続条件の判定を行い、trueであれば処理が実行され、カウンタ変数が増減されます。そして継続条件がfalseになった時は、for文が終了することになります。

これを一つ一つ列挙すると次の様になります。まず最初はiの値は0から始まります。

  1. i=0の為、継続条件i<5はtrueとなり、処理が実行される。(1回目)実行後iの値は1になる。
  2. i=1の為、継続条件i<5はtrueとなり、処理が実行される。(2回目)実行後iの値は2になる。
  3. i=2の為、継続条件i<5はtrueとなり、処理が実行される。(3回目)実行後iの値は3になる。
  4. i=3の為、継続条件i<5はtrueとなり、処理が実行される。(4回目)実行後iの値は4になる。
  5. i=4の為、継続条件i<5はtrueとなり、処理が実行される。(5回目)実行後iの値は5になる。
  6. i=5の為、継続条件i<5はfalseとなり、処理が実行されず終了する。iの値は5のまま。

for文一回ずつの処理結果

コメントを残す

サブコンテンツ

このページの先頭へ