プログラム組んでると、同じ(様な)処理を何度も繰り返すようなことがあります。
例えば次のような場合。
int i = 0;
i++;
System.out.println(i + "回目"); // "1回目"と表示
i++;
System.out.println(i + "回目"); // "2回目"と表示
i++;
System.out.println(i + "回目"); // "3回目"と表示
i++;
System.out.println(i + "回目"); // "4回目"と表示
i++;
System.out.println(i + "回目"); // "5回目"と表示
5回の繰り返しくらいならまだ良いですが、10回、100回、1000回、、、
とてもじゃないけど書けません。
それにタイプミスしてバグを生みます(バグを見つけるのも大変)。
こんなときに、for文を使用します。
for (初期化部; 繰り返しの条件式; 更新部;) {
繰り返す内容 ;
}
for (int i = 1; i < 6; i++) {
System.out.println(i + "回目");
}
こうコーディングすることで、先に書いたソースと同様の内容を
画面に表示することができます。
詳細を説明しますね。
まず初期化部、"int i = 1;"の部分です。
初期化部では変数を宣言できます。
宣言した変数のスコープはループのブロック内のみ(for文内だけで抜けると使えないってこと)で、
上のソースではfor文内だけで使えるint型の変数 i を宣言し、1を代入しています。
次に繰り返しの条件、この部分は必ずboolean型になります。
上のソースでは"i < 6"の部分で、変数 i が6未満のときTRUEとなります。
for文は条件式がTRUEの間、繰り返します。
つまり変数 i が6未満の間だけ、ブロック内の処理を繰り返すと言う事です。
最後に更新部、"i++"の部分です。
更新部はfor文の繰り返しの際のブロックが終了する後に実行される処理です。
上のソースでは、"System.out.println(i + "回目");" が完了した後に
"i++;"が実行され、変数 i を更新します。
=== ここで補足 ===
多分"i++"始めて出てきたと思います。
"++"はインクリメントといい、指定した変数に1を加算します。
インクリメントには"++i"(前置インクリメント)と"i++"(後置インクリメント)がありますが、
この説明はまた今度。
因みに"--"はデクリメントといい、指定した変数に1を減算します。
================
つまり上のソースは、
1. for文の中でのみ使用可能な変数 i を宣言し、1を代入
2. 条件式"i < 6"を判定する
3. i == 1 の為、条件式はTRUEの為、for文のブロックへ
4. "System.out.println(i + "回目");" を実行
5. 更新部"i++"が実行され、i に i + 1が代入される
6. 条件式がFALSEになるまで2.~5.を繰り返し
を行っています。
for文って便利ですね。
次回はwhile文の繰り返しについて書きますね~