This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes assertion Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "assertion" Watch "assertion" New topic


prajkta patil
Ranch Hand

Joined: Nov 13, 2004
Posts: 49
Given the following,

which line is an example of an inappropriate use of assertions?

A]Line 8

B]Line 9

C]Line 11

D]Line 15

E]Line 18
answer is E. Assert statements should not cause side effects. Line 18 changes the value of z if the assert statement is false.
but i think line 15 is also wrong bcause value of z is 5 & there is no break keyword in the switch stmt,so it will go to default stmt of switch after case 5.& then it will give error.i think author forgot to use break over there.And one more confusion is that z is not the final variable then how can it used in switch stmt of above programme.

pls correct my confusion ,
thanks in advance..
Dave Wood
Ranch Hand

Joined: Aug 02, 2004
Posts: 161

While I agree that the lack of break statement is odd, it doesn't really make the assertion in line 15 incorrect. That assertion doesn't fail in the case you described because z IS less than 10 (which is what's being asserted).

As for the variable not being final: that's not a requirement for use in a switch statement. What you're thinking of is that the values in the CASE statements must be constant values. In this example, those values are 4 and 5, which are constants. If you defined a variable:

int FOO = 5;

...and used it in place of the value 5 in the case statement, it would not compile because FOO is not constant.

Hope that helps.

Co-Author of <a href="" target="_blank" rel="nofollow">Java Swing</a><br />Co-Creator of <a href="" target="_blank" rel="nofollow">SCJP 5.0</a> and <a href="" target="_blank" rel="nofollow">SCJA</a> exams
Mike Gershman
Ranch Hand

Joined: Mar 13, 2004
Posts: 1272
Please consider that assert statements are used to detect program bugs. If the lack of break statements causes an assert to fail, the assert is just doing its job.

Mike Gershman
SCJP 1.4, SCWCD in process
prajkta patil
Ranch Hand

Joined: Nov 13, 2004
Posts: 49
thanks dave & mike.
now i understood well.
ankur rathi
Ranch Hand

Joined: Oct 11, 2004
Posts: 3830
So , What would be the answer of question .
I think the code will run without error but there is no option like none of this .
ankur rathi
Ranch Hand

Joined: Oct 11, 2004
Posts: 3830
I didnt get the reason for answer E .
please any body help .
Ramy M. Kamel

Joined: Sep 13, 2004
Posts: 22

Take care that the question is asking for inappropriate use of assertions, not illegal use.

I think it's mandatory to distinguishe between Illegal and Inappropriate when looking at assertions questions.

<b>If you do things well, do them better. Be daring, be first, be just.</b><br />SCJP <b>98.4%</b>
ankur rathi
Ranch Hand

Joined: Oct 11, 2004
Posts: 3830
How it is inappropriate ???

I am very much confuse now ?

please help .
ankur rathi
Ranch Hand

Joined: Oct 11, 2004
Posts: 3830
Please help .

It is confusing me !!
Sree Nivas
Ranch Hand

Joined: Jul 24, 2003
Posts: 95
There should not be any side effects when you are using assertions. Bcoz assertions can be enabled and disabled, z++ in line no 18 gives one output when assertions are enabled and different output when these are disabled. Hence the answer E is correct. The following url also helps when to use assertions and not to use.

Hope this clarifies your query.

It is sorta covered in the JavaRanch Style Guide.
subject: assertion
Similar Threads
Assertion question doubt??
two possible answers Q18 ch 4 page 282 from KB
Enum Question