Java Programming - Flow Control - Discussion

Discussion Forum : Flow Control - Finding the output (Q.No. 6)
6.
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 */
            }
        }
    }
}
0 1 2
0 1 2 1 2 2
Compilation fails at line 11.
Compilation fails at line 12.
Answer: Option
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.

Discussion:
12 comments Page 2 of 2.

Pallavi said:   1 decade ago
Why is it a compilation error in line number 11 but not in 12 ?

Animesh said:   7 years ago
Why Y is not accepted in a switch case? Explain to me.


Post your comments here:

Your comments will be displayed after verification.