複数の初期化式と変化式

広告

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文の外で変数宣言を行った上で初期化だけを記述します。

サンプル

では簡単な例で試しておきます。

JSample4_1.java

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));
    }
  }
}

コンパイル後に実行すると次のように表示されます。

p4-1

( Written by Tatsuo Ikura )