Multiple choice

What will be the output of the program? public class Switch2 { final static short x = 2; public static int y = 0; public static void main(String [] args) { for (int z=0; z < 3; z++) { switch (z) { case y: System.out.print("0 "); /* Line 11 / case x-1: System.out.print("1 "); / Line 12 / case x: System.out.print("2 "); / Line 13 */ } } } }

  1. 0 1 2

  2. 0 1 2 1 2 2

  3. Compilation fails at line 11.

  4. Compilation fails at line 12.

Reveal answer Fill a bubble to check yourself
C Correct answer
Explanation

Case expressions must be constant expressions. Since x is marked final, lines 12 and 13 are legal; however y is not a final so the compiler will fail at line 11.