1-3 ブロックの問題

次のコードを確認してください。

class BlockTest{
    public static void main(String args[]){
        int num = 3;
        if(!(num > 3)){
            System.out.print("abc");
        }
        {
            System.out.print("defg");
        }
        System.out.print("…");
    }
}

このコードをコンパイル、および実行すると、どのような結果になりますか。

1つ選択してください。

A.abc

B.defg…

C.abcdefg

D.abcdefg…

E.コンパイルエラーが発生する

《解説》

ブロックについての問題です。

3行目で宣言した変数numの値が3のため、4行目の!( num > 3) はtrue判定になり、 5行目で「abc」と出力されます。

6行目の}によりifブロックが終了し、7~9行目のブロック内の処理は、if文の判定結果にかかわらず実行されます。

よって、8行目で 「defg」と出力されます。

10行目も引き続き処理されるため「…」と出力されます。したがって、実行結果は「abcdefg…」と出力されるため、選択肢Dが正解です。

《答え》