Java - for 文

for 文

for 文は、指定した回数だけ処理を繰り返す場合に使用されます。書式は以下のとおりです。

for (初期化式; 条件式; 変化式){
  ...
}
for 文

for 文は、条件式が true の場合にブロック内に記述された命令文を実行します。条件式は関係演算子、および論理演算子を使って記述します。

ブロック内の処理が終わると、改めて条件式を評価します。条件式が true である場合、ブロック内の文の再実行します。条件式が false である場合、for 文を終了します。

for 文では最初に条件式が評価されます。もしも条件式が最初から false の場合、ブロック内に記述された命令文は処理されません。

初期化式と変化式

初期化式に記述した式は、条件式が評価される前に一度だけ実行されます。多くの場合、for 文の条件式で使用される変数の宣言と初期化に利用されます。

変化式は、繰り返し処理が一度終わる毎に実行される式を記述します。多くの場合、条件式で使われている変数の値を変化させるための式を記述します。例えば、条件式で使用している変数の値を 1 つ増加させる式などを記述します。

int sum = 0;

for (int i = 0; i < 2; i++){
  sum += 2;
}

System.out.println(sum);
初期化式と変化式

上記のプログラムでは、2 回繰り返し処理が行われます。i の値は 0 から 1 まで繰り返しを実行し、2 になった時点で条件式が false となり for 文が終了します。結果的に繰り返しは 2 回行われます。

複数の初期化式と変化式

初期化式と変化式には複数の式を記述することができます。複数の式を記述する場合は式と式の間をカンマ , で区切って記述します。

for (初期化式1, 初期化式2, ..; 条件式; 変化式1, 変化式2, ..){
  ...
}
複数の初期化式と変化式

具体的には、以下のように記述します。

int i, j;

for (i = 1, j = 5; i < 6; i++, j--){
    System.out.println("i = " + i + ", j = " + j);
}
複数の初期化式と変化式

ブロック内での変数の使用

for 文の条件式で使用している変数は、ブロック内で値を取り出すことができます。

for (int i = 0; i < 2; i++){
  System.out.println(i);
}
ブロック内での変数の使用

ただし、for 文の条件式で使用している変数は、for 文の内部でしか使用することができません。以下の例ではコンパイルの時点でエラーとなります。

for (int i = 0; i < 2; i++){
  // ブロック内の処理
}

System.out.println(i);
ブロック内での変数の使用

for 文の中で使用した変数の値を for 文が終わった後でも使用したい場合、変数の宣言は for 文の外で行う必要があります。

int i;

for (i = 0; i < 5; i++){
  // ブロック内の処理
}

System.out.println(i);
ブロック内での変数の使用

関連記事