Java Gold SE7対策問題 – 問2


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つ選んでください。
  1. defaultがコンソールに出力される
  2. x=0がコンソールに出力される
  3. x=1がコンソールに出力される
  4. 11行目でコンパイルエラーが発生する
  5. 15行目でコンパイルエラーが発生する
  6. 実行時エラーが発生する

解答・解説・問3はこちら

  • このエントリーをはてなブックマークに追加

PAGE TOP