Consider the following C program segment.
The cyclomatic complexity of the program segment is __________.
Explanation: the cyclomatic complexity of a structured program[a] is defined with reference to the control flow graph of the program, a directed graph containing the basic blocks of the program, with an edge between two basic blocks if control may pass from the first to the second. The complexity M is then defined as
M = E − N + 2P, where E = the number of edges of the graph. N = the number of nodes of the graph. P = the number of connected components.
For a single program (or subroutine or method), P is always equal to 1. So a simpler formula for a single subroutine is
M = E − N + 2
For the given program, the control flow graph is:
E = 13, N = 10. Therefore, E - N + 2 = 5.