複数の初期化式と変化式
for文では初期化式、条件式、変化式の3つの式を使用しますが、初期化式と変化式には複数の式を記述することができます。複数の式を記述する場合は式と式の間をカンマ(,)で区切って記述します。
for (初期化式1, 初期化式2, ..; 条件式; 変化式1, 変化式2, ..){ 実行する文; }
※条件式は関係演算子と論理演算子で複雑な条件式を記述できます。
例えば次の例を見て下さい。
int i, j; for (i = 1, j = 9; i < 10; i++, j--){ System.out.println("i = " + i + ",j = " + j); }
この例では初期化式で変数「i」と「j」の初期値を設定しています。また変化式で変数「i」は1だけ増加し、変数「j」は1だけ減少させています。このように一つのfor文で複数の変数の初期化と変化をさせることができます。
なお変数の宣言を伴う場合は注意して下さい。次のような記述はコンパイルエラーとなります。
for (int i = 1, int j = 9; i < 10; i++, j--){ System.out.println("i = " + i + ",j = " + j); }
同じデータ型の場合であれば「int i = 1, j = 9」と記述することはできます。ただ「int i = 1, int j = 9」と記述することはできませんし、異なるデータ型の変数に対して「int i = 1, double d = 1.0」のように記述することはできません。複数の初期化式を用いる場合はfor文の外で変数宣言を行った上で初期化だけを記述します。
サンプル
では簡単な例で試しておきます。
class JSample4_1{ public static void main(String args[]){ int i, j; for (i = 1, j = 5; i < 6; i++, j--){ System.out.println(i + " + " + j + " = " + (i + j)); } } }
コンパイル後に実行すると次のように表示されます。
( Written by Tatsuo Ikura )