Multiple choice technology programming languages

class C { String m1(int i) { switch (i) { case 0: return "A"; case 1: return "B"; case 2: return "C"; default: assert false; } } public static void main(String[] args) { C c = new C(); for (int i = 0; i < 4; i++) { System.out.print(c.m1(i)); }}} Which statements are true?

  1. With assertions enabled it prints ABC followed by an AssertionError message.

  2. With assertions disabled it prints ABC followed by an AssertionError message.

  3. Assertions should not be used within the default case of a switch statement.

  4. In this code example a throw statement must be used in place of the assert statement.

  5. Compile-time error

Reveal answer Fill a bubble to check yourself
D,E Correct answer
Explanation

The code contains a compile-time error because the switch statement inside m1 does not guarantee a return value for all paths if assertions are disabled. The compiler requires a return statement or a thrown exception after the switch block.