Control Flow
The control flow is the path of execution through a program.
Related concepts: SequenceConditionalLoop
Closest Wikipedia entry: Control flow
Misconceptions about Control Flow34 documented Misconceptions
Check YourselfCatchAlwaysExecutes — Java
Catch blocks always get executedCatchProvidesOptions — Java
Only the necessary part of a catch block executesConditionOneOutEdge — Java
A condition node in a control-flow graph can have a single outgoing edgeConditionalIsSequence — Java
If-else is equivalent to sequence of two ifsConditionalIsSequence — Python
If-else is equivalent to sequence of two ifsConditionalIsSequence — Scratch
If-then-else block is equivalent to sequence of two if-then blocksConditionalOperatorNotExpression — JavaScript
The conditional operator is not an expressionDeferredReturn — Java
A return statement in the middle of a method doesn't return immediatelyDeferredReturn — Python
A return statement in the middle of a function doesn't return immediatelyElsIf — Java
There is an elsif keyword for multi-way conditional statementsElseAlwaysExecutes — Java
The else branch of an if-else statement always executesElseAlwaysExecutes — Scratch
The else branch of an if-then-else block always executesForIsConditional — Java
The body of a for statement executes at most onceIfIsLoop — Java
The body of an if statement executes repeatedly, as long as the condition holdsIfIsLoop — Python
The body of an if-statement executes repeatedly, as long as the condition holdsIfRequiresElse — Java
Every if statement requires an elseInterproceduralEdge — Java
In an intra-procedural control-flow graph, method call nodes point to the called methodLoopTerminatingCondition — Java
For and while loops end when the condition becomes trueMissingElseTerminates — Scratch
Blocks following an if without else will not execute if the condition is falseNoShortCircuit — Java
&& and || always evaluate both operandsNoShortCircuit — Python
and/or always evaluate both operandsOutsideInFunctionNesting — Python
Nested function calls are invoked outside inPreIncrementBeforeLoop — Java
Pre-increment in update part of for loop means increment before loop bodyRecursiveFunctionNeedsIfElse — Python
A recursive function needs to contain an if-else statementRecursiveMethodNeedsIfElse — Java
A recursive method needs to contain an if-else statementRepeatDistributes — Scratch
Each block in a loop is repeated individuallyResetStateEachLoopIteration — Scratch
The computation of all loop iterations starts from the state before the loopReturnNoOutEdge — Java
In a control-flow graph, a return statement has no outgoing edgeRightToLeftChaining — Python
Chained accesses are invoked from right to leftStatementMultipleOutEdges — Java
A non-condition node in a control-flow graph can have multiple outgoing edgesTryCatchMandatory — Java
If code could throw an exception, you must surround that code with a try/catch blockTryFinishes — Java
Exceptions get thrown at the end of the try blockZeroInEdges — Java
A control-flow graph node (other than the entry node) can have zero incoming edgesZeroOutEdges — Java
A control-flow graph node (other than the exit node) can have zero outgoing edges