Javaの認定資格「Oracle Certified Java Programmer, Gold SE 7」。通称JavaGoldのオリジナル問題を紹介していきたいと思います。
前回の解答
まずは、前回の解答から。
正解は「(1) コンパイルエラーが発生する」となります。
ソースコードが長く、コマンドラインで実行するようにプログラムされているため面食らうかもしれませんが、ポイントとなるのはEnumの使い方です。24行目でenumが宣言されていますが、列挙する値にダブルクォーテーション(2重引用符)がついてしまっています。ここが原因で(1)コンパイルエラーとなります。
列挙型にはさらに複雑な使い方(コンストラクタや変数、メソッド定義)などがありますが、まずはこの基本を押さえておいてください。
では引き続き、列挙型に関する問題です。
問題文が問15とほとんど同じですが、コンパイルエラーの原因となっていたダブルクォーテーションが取り除かれています。その結果として実行結果がどのように変わるか注意して回答を選んでみてください。
問16
次のプログラムを以下のように実行しました実行結果として正しいものを1つ選んでください。なお、クラスパスは正しく設定されているものとする。
$ java -cp bin techpjin.Lesson16 spring
package techpjin; public class Lesson16 { public static void main(String[] args) { if(args.length != 1) { System.out.println("季節を入力してください。[SPRING, SUMMER, AUTUMN, WINTER]"); return; } Seasons s = Seasons.valueOf(args[0]); switch (s) { case SPRING: case SUMMER: System.out.println("3月から8月"); break; case AUTUMN: case WINTER: System.out.println("9月から2月"); break; } } } enum Seasons{ SPRING, SUMMER, AUTUMN, WINTER }
- コンパイルエラーが発生する
- java.lang.IllegalArgumentException実行時エラーが発生する
- java.lang.ArrayIndexOutOfBoundsException実行時エラーが発生する
- 「季節を入力してください。[SPRING, SUMMER, AUTUMN, WINTER]」と出力される
- 「3月から8月」と出力される
- 何も出力されない
問16の解答・解説と問17はこちら