Javaのfor文

Javaのfor文は、繰り返し処理を表す制御文である。

構文

Javaにおけるfor分の構文を次に示す。

for (initialization; condition; iteration) {
  statements
}
for (initialization; condition; iteration)
  statement
initialization
初期処理(ループ変数の初期化)を記述する。初期処理がなければ省略できる。
condition
繰返し条件を記述する。繰返し条件がなければ省略できる。
変化式
初期処理で初期化インデックス変数を、繰返しのたびに変化させる式を指定する。変化式が無ければ省略できる。
statements
繰り返す処理を記述する。複数のステートメントを記述できる。
statement
繰り返す処理を記述する。単一のステートメントのみ記述できる。

初期処理は省略することができる。

for (; condition; iteration) {
  statements
}
for (; condition; iteration)
  statement

繰返し条件は省略することができる。

for (initialization; ; iteration) {
  statements
}
for (initialization; ; iteration)
  statement

変化式は省略することができる。

for (initialization; condition;) {
  statements
}
for (initialization; condition;)
  statement

繰返し条件及び変化式は省略することができる。

for (initialization; ;) {
  statements
}
for (initialization; ;)
  statement

初期処理及び変化式は省略することができる。

for (; condition;) {
  statements
}
for (; ; iteration)
  statement

初期処理及び繰返し条件は省略することができる。

for (; ; iteration) {
  statements
}
for (; condition;)
  statement

for文の使用例を示す。

public class Example {
  public static void main(String[] args) {
    for (int i = 0; i < args.length; i++) {
      System.out.println(args[i]);
    }
  }
}

上記サンプルコードの実行例を示す。

$ java Example foo bar baz
foo
bar
baz

拡張for文

for-each文は、配列やコレクションと呼ばれる複数の要素から要素を順に取り出しで処理するための繰り返し制御文である。

for ( データ型 変数名 : コレクション ) {
  ブロック
}

for文の使用例を示す。

public class Example {
  public static void main(String[] args) {
    for (Strig s : args) {
      System.out.println(s);
    }
  }
}

上記サンプルコードの実行例を示す。

$ java Example foo bar baz
foo
bar
baz

break

for文を途中で終了するには、break文を使う。

public class Example {
  public static void main(String[] args) {
    for (int i = 0; ; i++) {
      if (i >= args.length) {
        break;
      }
      System.out.println(args[i]);
    }
  }
}

上記サンプルコードの実行例を示す。

$ java Example foo bar baz
foo
bar
baz

continue

for文を途中で抜けて、次の繰り返し処理に移るには、continue文を使う。

forEachメソッドとラムダ式

for文と同様の繰返し処理をコレクションのforEachメソッドとラムダ式でもできる。

public class Example {
  public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<String>(Arrays.asList(args));
    list.forEach(s->System.out.println(s));
  }
}

上記サンプルコードの実行例を示す。

$ java Example foo bar baz
foo
bar
baz

java.lang.Iterableインタフェースを実装したクラスであれば、forEachメソッドを利用できる。具体的には、次に示すクラスである。

次に示すインタフェースはIterableのサブインタフェースであるため、forEachメソッドを利用できる。