for文

プログラムの中では特定の処理を繰り返したい場合があると思います。 例えば指定の回数だけ特定の命令をさせいとき2回や3回繰り返すならそのまま記述すればよいでしょうが、 100回や200回同じ処理を繰り返すプログラムを書くのはとても面倒です。そこで処理を繰り返す命令にfor文を使います。

for(初期化式; 条件式; 更新式){
    ループ内処理
}

for文は条件を満たしている間、繰り返し処理を繰り返します。まず初期化式で変数を初期化します(初期設定をするということです)。 その後は条件式で変数を評価し、条件にあっていればループ内処理を行います。その後更新式を行い、1回目のループは終わりです。 2回目以降のループ処理は条件式→ループ処理→更新式→条件式・・・と繰り返していきます。 条件式が間違ったものになるとループを抜けます。ループ処理は{}内で囲まれた範囲になります。 図(フローチャートと呼びます)に書くと以下のようになります。


なんとなくイメージはつかめたでしょうか?以下に簡単な例を記述します。

for(int i=0; i < 10; i++){
    println(i);
}
//これはエラー
//println(i);

結果は以下のように0から9の値がprintln命令で表示されます。 まず初期化式int i=0でiは0と宣言しています。次に条件式i < 10です。 これはiが10より小さい場合という意味です。今iの中身は0なのでこれは正しいですね。 この条件が正しいなら、ループ内処理を行います。今回はprintln命令で現在のiの値を表示させています。 今、iの値は0なのでコンソールには0が表示されます。次に更新式に移ります。更新式ではi++とiの値をインクリメントしています。 インクリメントとは変数の値を+1することでしたね。つまりiの値はi(0)+1で1になります。これで1回目のループが終りました。 2回目のループからは条件式から再スタートします。これが11回目のループになったとき、iは10になっています。 このとき条件式は11 < 10と正しくないものになってしまいます。そのためここでループを抜けます。

ところで文章の最後にコメントアウトしたprintln(i)は実際に記述すると何故エラーになるのでしょうか? それはfor文の中に宣言されたiはfor文の中でしか使えないからです。for文は{と}で囲まれています。 こういった{}で囲まれた場合、内部の変数はその中でしか使えないと覚えておきましょう。また、こういった変数をローカル変数と呼びます

広告