Java Programming - Flow Control - Discussion

Discussion Forum : Flow Control - Finding the output (Q.No. 3)
3.
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 x: System.out.print("0 ");
                case x-1: System.out.print("1 ");
                case x-2: System.out.print("2 ");
            }
        }
    }
}
0 1 2
0 1 2 1 2 2
2 1 0 1 0 0
2 1 2 0 1 2
Answer: Option
Explanation:

The case expressions are all legal because x is marked final, which means the expressions can be evaluated at compile time. In the first iteration of the for loop case x-2 matches, so 2 is printed. In the second iteration, x-1 is matched so 1 and 2 are printed (remember, once a match is found all remaining statements are executed until a break statement is encountered). In the third iteration, x is matched. So 0 1 and 2 are printed.

Discussion:
26 comments Page 3 of 3.

Hemavathi said:   1 decade ago
I don't understand the output can anyone please explain this?

Kundan said:   1 decade ago
Final keyword used in java to declare a variable as a constant. Value of these types of variable can, t change during run time.

Anjena said:   1 decade ago
Can you explain about final keyword?

Derya said:   1 decade ago
It doesn't, does it! I think this is wrong.

case x: System.out.print("0 "); x=2
case x-1: System.out.print("1 "); x=1
case x-2: System.out.print("2 "); x=0

z has 3 values 1,2,3 at each iteration of the loop, so it should only print 1 and 0

XYZ said:   1 decade ago
How x-2 matches in the first iteration? I didn't understand.

Sanjay said:   1 decade ago
How 2 is printed in third iteration, ans supposed to be 21012 ?


Post your comments here:

Your comments will be displayed after verification.