DeferredReturnObserved in Published Research

A return statement in the middle of a function doesn't return immediately
A return statement immediately returns from the function
CorrectionHere is what's right.
A return statement returns immediately, for example:
def tick(value: int):
if value <= 0:
return
value -= 1
if value == 0:
ring_bell()In the above code, if value <= 0, then the return statement executes and returns from the function immediately, i.e., lines after the return statement will not be 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. In that case, the finally block will execute before returning.
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.
The misconception can also 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.
