User manual

Table Of Contents
mikroC PRO for PIC32
MikroElektronika
251
Note: #if and #else preprocessor statements (directives) look similar to if and else statements, but have
very different effects. They control which source le lines are compiled and which are ignored.
Switch Statement
The switch statement is used to pass control to a specic program branch, based on a certain condition. The syntax
of the switch statement is:
switch (expression) {
case constant-expression_1 : statement_1;
.
.
.
case constant-expression_n : statement_n;
[default : statement;]
}
First, the expression (condition) is evaluated. The switch statement then compares it to all available constant-
expressions following the keyword case. If a match is found, switch passes control to that matching case causing
the statement following the match evaluates. Note that constant-expressions must evaluate to integer. It is not
possible to have two same constant expressions evaluating to the same value.
Parentheses around expression are mandatory.
Upon nding a match, program ow continues normally: the following instructions will be executed in natural order
regardless of the possible case label. If no case satises the condition, the default case evaluates (if the label
default is specied).
For example, if a variable i has value between 1 and 3, the following switch would always return it as 4:
switch (i) {
case 1: i++;
case 2: i++;
case 3: i++;
}
To avoid evaluating any other cases and relinquish control from switch, each case should be terminated with break.
Here is a simple example with switch. Suppose we have a variable phase with only 3 different states (0, 1, or 2) and a
corresponding function (event) for each of these states. This is how we could switch the code to the appopriate routine:
switch (phase) {
case 0: Lo(); break;
case 1: Mid(); break;
case 2: Hi(); break;
default: Message(“Invalid state!”);
}