64 ◾ Software Essentials
Control ow should be evident from soware structure. Although
simple, the if/else construct may impede code analysis. It is dicult to
track the state of values or the outcome of evaluations when Boolean
expressions are overly complex or too many if/else statements are chained.
Soware developers should also be aware of the dangling-else problem:
when a chained if statement contains fewer elses than ifs, it may be unclear
how to match the else statements to the if statements.
Code segments #A and #B in Example 3.3 are equivalent even though
the format (indentation) implies dierent control ows. However, indenta-
tion does not matter in C-like languages. C-like languages are “free for-
mat”: white space such as bla ...