DeferredReturnObserved

A return statement in the middle of a method doesn't return immediately
A return statement immediately returns from the method
CorrectionHere is what's right.
A return statement returns immediately.
For example:
public void tick() {
if (value<=0) {
return;
}
value--;
if (value==0) {
ringBell();
}
}In the above code, if value<=0 then the return statement executes and returns
from the method immediately
(which means that in this case the subsequent lines are not executed).
Note for advanced students:
The only situation where return does not return immediately
is if the return statement is located inside a try block
with a corresponding finally block.
ValueHow can you build on this misconception?
This misconception can provide a good opportunity to discuss statement sequences as a key aspect of imperative programming.
This misconception can be an opportunity to point out the fact that
return statements located inside a try block
with a corresponding finally block
indeed do not return immediately.
However, a full-fledged discussion of the details of exception handling
may be too advanced at the time students hold this misconception.
Language
Concepts
Expressible In
Other Languages
Literature References
The following papers directly or indirectly provide qualitative or quantitative evidence related to this misconception.