The switch statement can be used when you want the value of a block to depend on an integer. It takes one argument, an expression which evaluates to an integer. It should be followed by a sequence of case statements, which takes the form case followed by an integer and then a colon, which is followed by a code block to be executed if the expression equals the integer. At the end is an optional default: statement, which is followed by a code block to be executed if the expression doesn’t equal any of the given integers:
| switch(n) { |
| case n1: block n1 |
| case n2: block n2 |
| … |
| case nk: block nk |
| default: default_block |
(where recall the blocks need to be delimited by braces or by begin and end).
Example.
As an example of a program which performs an operation on the first
two variables depending on the third, you could enter (see
Section 12.1.1):
| oper(a,b,c):= { |
| switch (c) { |
| case 1: {a:= a + b; break;} |
| case 2: {a:= a - b; break;} |
| case 3: {a:= a * b; break;} |
| default: {a:= a ^ b;} |
| } |
| return a; |
| } |
Then:
Input:
Output:
| 5 |
since the third argument is 1, and so oper(a,b,c)
will return a+b, and:
Input:
Output:
| −1 |
since the third argument is 2 and so oper(a,b,c) will return a-b.