Monitoring System

Statement Level Control Structures
Chapter 8

• • • • Selection Statements Iterative Statements Unconditional Branching Guarded Commands


Statement Level Control Structures?
• Constructs that allow the program to select from alternative control flow paths (if else construct) • Allow repeated execution of statements (loops)


Control Statements
• Research on control statements during the 1960s and 1970s
• ‘goto’ statements are sufficient • A language without goto statements really only needs a few other controls • All algorithms that can be expressed by flowcharts can be coded using just two control structures


What Do They Look Like?
• Number of control statements used expanded by writability
• • • • While For If – else Switch

• Restricted by readability • On the other hand, too few control statements can be harmful to readability


Selection Statements
• Means of choosing between two or more execution paths • Two categories
• Two-way • n-way (multiple selection)


Two-way Selection
• What we know as if-else constructs • Variations in their evolution can be seen in their diverse syntax in different languages Basic construct is: if control_expression then clause else clause

The Control Expression
• In C-based languages – usually in parentheses • If the language has a then reserved word, then parentheses not necessary (Ada) • Usually a Boolean expression if 5 == 7 then print “Your compiler is broken” else print “Your compiler works!”

The Clause
• In modern languages the then clause and else clause can be single or compound • Perl forces all clauses to be compound • In Fortran 95 and Ada , the clauses are just statement sequences – must be ended with keyword end


Nesting Selectors
• Problems with Nesting Selectors Java: if (sum == 0) if (count == 0) result = 0; else result = 1; Python: if (sum == 0): if (count == 0): result = 0 else: result = 1


Nested Selectors Continued...