answer given is E........ but i think here assertion has been used appropriately throughout.... well if i give a little more thought, E may be correct because at line 18 the 2nd expression although returns a value but changes the value of local variable z, which changes the state.....may be!!!
you can but it is not appropiate to use assersion to apply any logic that change the state of the object. think when you are running the code with assertion Off. your condition might fail but the change you were expecting doesn't take place. Keep one thing in mind...assertions are enabled while developing.Once you finish your development, the deployed application usually has assertion disabled. so in that case, your logic fails. Use assertion only for debugging option , not like a if -else block. hope u got the point. regards sajid