Javaの認定資格「Oracle Certified Java Programmer, Gold SE 7」。通称JavaGoldのオリジナル問題を紹介していきたいと思います。
前回の解答
まずは、前回の解答から。
正解は「5.コンパイルエラーが発生する」となります。
この問題のポイントは2つ。「ローカル変数の初期化」と「switch文で使用できるデータ型」です。
ローカル変数はコンパイラによって自動初期化されません。そのため、13行目で定義した変数xを15行目で参照することはできません。(コンパイルエラーになります。)
またJavaのswitch文では整数系のデータ型、もしくはStringしか使用することができません。具体的にはbyte、short、int、long。また、enumも内部では整数として処理されていますのでOKとなり、charも同様にOKとなります。Java SE 6以前ではStringが許可されていませんでしたが、Java SE 7からはOKとなりました。注意しておきたいところです。
問題文ではnullを条件としていますので、ここでもコンパイルエラーとなってしまいます。
問2
package techpjin; public class Lesson2 { public static void main(String[] args) { new Piyo().m1(); } } class Piyo{ Integer x; public void m1(){ switch (x) { default: System.out.println("default"); break; case 0: System.out.println("x=0"); break; case 1: System.out.println("x=1"); break; } } }
このプログラムを実行するとどのような結果となるか、1つ選んでください。
- defaultがコンソールに出力される
- x=0がコンソールに出力される
- x=1がコンソールに出力される
- 11行目でコンパイルエラーが発生する
- 15行目でコンパイルエラーが発生する
- 実行時エラーが発生する
解答・解説・問3はこちら