Control Flow
The control flow is the path of execution through a program.
Related concepts: SequenceConditionalLoop
Closest Wikipedia entry: Control flow — In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an imperative programming language from a declarative programming language. Within an imperative programming language, a control flow statement is a statement that results in a choice being made as to which of two or more paths to follow.
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