The Flow of Control Among Statements
Control statements provide two very
important means of making programs flexible
Some way of allowing different control flow paths.
A way of allowing for the repeated execution of
statements or groups of statements.
A control structure is defined as a control
statement and the collection of statements
whose execution it controls.
Bohm and Jacopini proved that all algorithms
that can be diagrammed in a flowchart can be
reproduced in a programming language with
only the two previously mentioned control
So why have more than these?
The one design issue which is common to all
control and iteration structures is whether to
allow multiple points of entry to the statement.
These multiple entry points are only possible in
languages that allow for GOTO or statement labels.
Multiple exits from a control statement exist in most
programming languages and they are not seen as a
detriment either to readability or understanding.
Selection statements are grouped into two
Two-way control statements (if then)
n-way control statements
What type of expression controls the if
How are then and else clauses specified.
By curly braces.
With the keyword Then.
How should the meaning of nested selectors be
Placed in a compound (Braces)
Using a reserved word to end the statement.
Logically Controlled Loops
User-Located Loop Control Mechanisms
Iteration Based on Data Structures
An unconditional branch statement transfers
execution control to a specified location in the
Can be one of the most powerful statements in any
Leads to problems in readability since programs are
not restricted to a traditional top to bottom flow of
Can lead to higher maintenance costs and
User-Controlled Loop Control Statements
A new and different form of selection and loop
statement recommended by Dijkstra
Supports correctness in development.
Constructs can be considered independently
Increased clarity in reasoning
Allows for nondeterminism
Enables program verification
Guarded commands consist of a boolean
expression , the guard, and the statement or
statements to be executed when it is found
Although it bears some resemblance to a multiselect statement, it differs in that any statement
whose guard evaluates to true can be executed.
Although Bohm and Jacopini proved that only
selection and pretest logical loops were
absolutely necessary to follow an flow chart
sequence, no modern language has taken the
step to remove other control structures.
Additional control structures which have been
suggested in the past may have not been
included because doing so would increase the
size and complexity of languages.
Control structures should be simple.
They should have one entrance although
having more than one exit from a control
structure is standard and is not seen as a
hindrance to readability.
GOTO is regarded as evil , however many
modern languages still allow it, including C#.
There are several different categories of control
Looping structures vary among languages