連載
» 2008年02月14日 00時00分 公開

ソースコードで学ぶ SJC-P 5.0 ドリル(4):Java SE 5.0の新機能、拡張for文を習得する (1/2)

本連載は、サン・マイクロシステムズ認定のJava資格Sun Certified Programmer for Java 2 Platform 5.0(SJC-P5.0)に対応しています。最新の出題傾向に基づいて、ソースコードの問題を中心に毎回模擬問題を1問出題します。ソースコードに慣れながら、SJC-P合格を目指して頑張りましょう。

[山本道子,有限会社 Ray]

 連載第4回の今回は、Java SE 5.0で新たに導入された拡張for文に関する出題です。

今回のポイント

 Java言語では、for文の拡張版として拡張for文が用意されています。これは、配列やコレクションの全要素を順番に取り出して処理する場合に使用され、for文に比べて記述が簡素化されています。

図1 拡張for文と通常のfor文の構文の違い 図1 拡張for文と通常のfor文の構文の違い

 拡張for文は、参照変数名で指定した配列やコレクションの要素数分だけ処理が繰り返されます。for文の()内で指定した参照変数から順に要素を取り出し、変数宣言で宣言した変数へ値を代入します。その値を基に、処理文が実行されます。このため、変数宣言で宣言する変数のデータ型は配列の要素の型に合わせる必要があります。また、拡張for文では、各要素に対してインデックスを使用したアクセスは行いません。

 1. class Sample {
 2.   public static void main(String[] args) {
 3.     // 配列の宣言
 4.     int[] ary = { 10, 20, 30, 40, 50 };
 5.     // 配列aryの全要素を順番に取り出し、出力する
 6.     for (int num : ary) {
 7.         System.out.print(num + " ");
 8.     }
 9.   }
10. }
サンプルコード1
C:\sample>java Sample
10 20 30 40 50
C:\sample>
サンプルコード1の実行結果

演習問題

 以下の問題を考えてみてください。解答と解説は次のページにあります。

問題

 次のソースコードがあります。

class Test {
  public static void method(String... str) {
    [     (1)     ]
  }
  public static void main(String[] args) {
    String[] str = {"tanaka", "yamamoto", "suzuki"};
    method(str);
  }
}

 上記のプログラムを正しくコンパイルするために、空欄(1)に入るソースコードはどれですか?2つ選択してください。

A.for (String s : str) System.out.println(s);
B.for (String s ; str) System.out.println(s);
C.for (int i = 0; i < str.length; i++) System.out.println(str[i]);
D.foreach(str) System.out.println(str);
E. while(str.hasNext()) System.out.println(str.next());

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。