for文

Javaのfor文には「基本for文」と「拡張for文」がある。

メニュー

Javaのfor文には「基本for文」と「拡張for文」がある。

int[] numbers = { 10, 60, 88 };
for (int i = 0; i < numbers.length; i++) {
  int number = numbers[i];
  System.out.println("numbers[" + i + "]:" + number);
}

繰り返しを記述するためにJavaではfor文とwhile文とdo文があるうちの一つ。書式が若干違えど、最近の言語であればほとんどの言語にある。while文との違いは初期化コードや更新コードを()内に記述できるところぐらい。

Java SE 8からはfor文ではなく、ストリームでなるべく記述した方がいい。

基本for文

拡張for文ができてからはあまり使う必要がなくなっている。コレクションなどのループは拡張for文を利用するべき。

for (①初期化コード ; ②評価式 ;  ④更新コード) {
     ③命令;
}

疑似コードで書くとこんなかんじ。どの順番で実行されるかをしっかり把握することが肝要(とくに②評価式がどの順で評価されるのか)。

処理の流れ
  1. ①初期化コードが実行される

  2. ②評価式が評価される

    • falseの場合

      • 終了

    • trueの場合

      • ③命令が実行される

      • ④更新コードが実行される

      • 「2.②評価式が評価される」へ行く

気をつけるのは②評価式が先に実行されるところ。②評価式の書き方によってはいきなりfalseとなって③命令が一度も実行されないことがある。

拡張for文

for (型 変数名 : Iterable(コレクション) or 配列) {
     命令;
}

Java SE 1.5から利用可能になったので「拡張」とついているがいわゆるfor-each文。基本for文に比べて代入処理をいちいち書かなくていいのがうれしい。