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はこちら