Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

assertions doubt

 
veda vyas sista
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
class A {
void m1(int i) {
int j = i % 3;
switch (j) {
case 0: System.out.print("0"); break;
case 1: System.out.print("1"); break;
default:
assert j == 2;
System.out.print(j);
}}
public static void main (String[] args) {
A a = new A();
for (int i=5; i >= -1; i--) {a.m1(i);}
}}

Which statements are true?

a. With assertions enabled it prints 210210-1 followed by an AssertionError message.
b. With assertions enabled it prints 210210 followed by an AssertionError message.
c. With assertions enabled it prints only 210210.
d. With assertions enabled it prints nothing.
e. With assertions disabled it prints 210210-1
f. With assertions disabled it prints only 210210
g. Assertions should not be used within the default case of a switch statement.

could anyone please tell me how answer is A & E.
 
ilkin esrefli
Greenhorn
Posts: 28
IntelliJ IDE Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi
It is not right, answer is not A&E. Correct answer is B&E.
Because when i=-1, j=-1%3=-1 hten default case run and assert j==2 throws AssertionError and program couldn't print j as -1.
So answer:
b. With assertions enabled it prints 210210 followed by an AssertionError message.
e. With assertions disabled it prints 210210-1
thanks..
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic