拡張for文

for文の書き方はCと変わらない。
でも、javaには拡張for文という便利なものがあるみたいです。

  1 class ExtendFor {
  2   
  3   public static void main(String[] args){
  4     int[] a = {1,2,3,4,5};
  5     int sum = 0;
  6     
  7     for(int x : a){
  8       sum += x;
  9     }
 10     System.out.println(sum);
 11   }
 12 
 13 }

実行してみる

$ javac ExtendFor.java
$ java ExtendFor
15

配列の中身がしっかり足されている。

for(int x : a)

ここの部分の解釈は、"配列aの先頭から最後までの要素を順にxに代入していきますよ"。
xは取り出した要素が格納される変数。
aは参照したい配列変数の名前。
xはaの型に合わせる必要があります。


なかなか便利ですね。
というのも、例えばfor文を使って配列aの先頭から最後までを参照した場合は以下に示すように"i<5"とか"i++"を書く必要がある。でも、拡張for文だとそういうことを書かなくても、良い。

for(int i=0;i<5;i++) {
 a[i].......

2008年9月23日追記

多次元配列に拡張for文

  1 public class Test {
  2   public static void main(String[] args) {
  3 
  4     int[][] a = {{0,1},{2,3,4},{5,6,7,8}};
  5 
  6     for (int[] i : a) {
  7       for (int j : i) {
  8         System.out.printf("%3d",j);
  9       }
 10       System.out.println();
 11     }
 12 
 13   }
 14 }

実行してみた結果

 $ java Test
  0  1
  2  3  4
  5  6  7  8