【Java Silver黒本】5章のつまづいたところまとめ。

for文

  • 初期化文で複数の変数を宣言する場合、変数は同じ型でなければならない。
  • 更新文には複数の処理を記述できる。
public class Main {
  public static void main(String[] args) {
    // 初期化時に複数の変数を宣言できる
    for(int i = 0, j = 0; i < 10; i++) {

    }

    // 初期化時には違う型の変数を複数宣言することは出来ない
    // 次のfor文はコンパイルエラーになる
    for(int i = 0, double d = 0.0; i < 0; i++) {

    }

    // 更新時に複数の処理を記述できる
    for(int i = 0; i < 10; i++, System.out.println(i)) {

    }
  }
}

拡張for文

  • 拡張for文の一時変数には、集合の各要素への参照が入っている。そのため、一時変数に別の値を代入しても集合に変化はない。
public class Main {
  public static void main(String[] args) {
    int[] array = { 1, 2, 3 };

    for(int i: array) {
      i = 0;
    }

    // array: { 1, 2, 3 }
  }
}

ラベル

  • Javaでは変数宣言以外の文やブロックなどにラベルをつけることが出来る。ラベルはループ制御に使用することが出来る。
public class Main {
  public static void main(String[] args) {
    loopI: for(int i = 0; i < 5; i++) {
      loopJ: for(int j = 0; j < 3; j++) {
        if(j > 1) {
          continue loopI;
        }

        if(i > 1) {
          break loopJ;
        }

        System.out.println(i + ", " + j);
      }
    }
  }
}

実行結果

0, 0
0, 1
1, 0
1, 1