StatementMultipleOutEdgesDRAFT
A normal (statement) control-flow graph node (e.g., some node for a statement like a = a + 2
) can have more than one outgoing arrows.
A non-condition node in a control-flow graph can have multiple outgoing edges
CorrectionHere is what's right.
Unlike condition nodes (shown as diamonds), statement nodes (shown as rectangles) have exactly one outgoing edge. That edge points to the next node to execute. There is no choice: execution must continue at exactly that next node.
Note: If we include exceptional control flow (due to the implicit throwing of exceptions, such as the possible throwing of a NullPointerException
in a statement like o.x = 2
), then nodes can have multiple outgoing edges: one normal edge, and zero or more exceptional edges (exceptional edges show what happens next when an exception is thrown: they point to a catch
or finally
block, or to the exit node of the CFG).