for 繰り返し ループカウンタ変数 - 萌えJava超入門
第九章 制御文

for文(繰り返し)

決められた回数だけ処理を繰り返す命令です。

int num=3;
for(int i=0; i<num; i++){
    処理;
}

事前に繰り返しの回数が分かっているなら
迷わずこれだ。
繰り返し制御では、
最も使用頻度が高いのではないだろうか。
目次


1.使い方

まずは動かしてみましょう。

//Sample38_51.java
class Sample38_51 {
  public static void main(String[] args){
    for(int i=0; i<3; i++){
      System.out.println(i);
    }
  }
}

コマンドライン
> javac Sample38_51.java
> java Sample38_51
0
1
2


2.書式

書式
for ( 初期化式 ; 条件式 ; 変化式 ){
    処理;
}

最も一般的な形
int num=3;//繰り返す回数
for(int i=0; i<num; i++){//変化式で i が一つずつ増える
    System.out.println(i);
}

「()」カッコの中は、3つに仕切られています。
「;」は、「文末のコレ;」とは関係ありません。ただの区切り文字です。


「i++」って
インクリメントだっけ?
その通りだ!ちなみに
前ぷらぷらでも同じ結果になるが、
普通に後ろぷらぷらを使ってくれ。
混乱する。

3.解説

以下のイメージに沿って説明していきます。
forの実行イメージ
img_01.gif

画像の説明
  1. for文 に入って 初期化式 (int i=0) を実行します。
    初期化式 が実行されるのは、最初の 1回だけです。

  2. 条件式 (i<3) を評価します。
    ここでは i==0 なので、(i<3) は true です。
    条件式が true のときは、処理 を実行します。

  3. 処理 が終わったら、変化式 (i++) を実行します。

  4. (2.)に戻って 条件式 (i<3) を評価します。
    条件式が true の間(2~4) を繰り返します。
  5.      .
         .
         .
  6. i==3 になると、条件式が false になるので、for文 を抜けます。

ループカウンタ変数
繰り返し回数をカウントする変数を「ループカウンタ変数」と呼びます。
ここでは「i」のことですね。
ループカウンタ変数は「 i, j, k, l, m, n 」といった
1文字の変数を使う習慣があります。




4.while文との使い分け

for文は、以下の様な while文 を定型化したものと思ってください。
Sample38_52.java while文と比較
//Sample38_52.java
class Sample38_52 {
   public static void main(String[] args){
    int num=3;//繰り返す回数
    int i=0;//初期化
    while(i<num){
      System.out.println(i);
      i++;//変化式
    }
   }
}

必須項目の 初期化式 ; 条件式 ; 変化式 を1か所にまとめて可読性を向上しているのです。
for文で書けるものは for文がオススメです。
この形に当てはまらない場合は、while文も候補になります。


5.ループカウンタ変数 i のスコープ

スコープとは、有効範囲のことです。
変数は、宣言したブロックの中が、有効範囲になります。

while文 の i は、ブロックの外で宣言。
for文は、ブロックの中で宣言している違いがあります。

for文は、繰り返しの後に不要になる変数を、ブロック内で破棄して後に残しません。
お上品な書き方と言えるかもしれません。
変数のスコープについては、
後でじっくり説明しよう。



でも、慣れるまでは while文 の方がわかりやすいんだよね。
お疲れ様でした。




© 2019 awasekagami