"The secret to creativity is knowing how to hide your sources."
- Albert Einstein
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 */
}
}
}
}
[A].
0 1 2
[B].
0 1 2 1 2 2
[C].
Compilation fails at line 11.
[D].
Compilation fails at line 12.
Answer: Option B
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.
public class Switch2
{
final static short x = 2;
public static final 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 */
}
}
}
}
// Can you tell me why the above program giving 012122 as output?
Mahesh said:
(Thu, Jun 30, 2011 03:08:30 AM)
Nevermind i got the logic. I forgot when we define x and y as static final. They become constant. So inside switch case - case y will mean case 0 and so on for others.
Piya said:
(Fri, Nov 11, 2011 03:15:26 PM)
When I define the keyword public for why it display the op as 012122 how is it?