Control Flow as Graph — 3. Multi-Way Selection

Control Flow as Graph is a sequence consisting of the following 5 notional machines:
1. Sequence
2. Selection
3. Multi-Way Selection
4. Short-Circuit
5. Repetition

Programming Language

imperative / Java

Form

Representation

Attribution — Origin / Source

Collected by Matthias Hauswirth — Compilers (control-flow graphs) and flow charts

Conceptual Advantage

Understand concept of a multi-way selection (a conditional statement where the condition is not just a Boolean value, e.g., a switch-statement).

Mapping

PLNM
... ...
switch condition diamond-shaped node with multiple arrows leaving
switch cases label on arrows coming out of a switch (including 'default')

Draws Attention To

The idea of a multi-way 'selection' in structured programming, where a data (the condition's value) is turned into control flow (the next statement to execute).

Use When

When introducing switch-statements

Cost

Requires prior introduction of 'Selection'.

Details

This is the third in a sequence of "Control Flow as Graph" notional machines:

  1. Sequence
  2. Selection
  3. Multi-Way Selection
  4. Short-Circuit
  5. Repetition

More Information

This notional machine is implemented by the Informa Clicker tool. This tool allows students in a classroom to construct control flow graphs in in-class clicker exercises.

Check this research paper

Matthias Hauswirth and Andrea Adamoli
Solve & Evaluate with Informa: A Java-based Classroom Response System for Teaching Java
PPPJ '09

Comments or Feedback?

Do you have feedback on this notional machine? Did you find a mistake, or do you have a request for improvement? You can create an Issue on GitHub, where the description is hosted. This way we can see your feedback and address it.

For this, you need a GitHub account. Then follow this link to see the source file of this page. In there, click the ... left of the highlighted line, then pick "Reference in a new issue".

Create an Issue on GitHub