If expression evaluates to
non-zero (true), statement is executed.
If expression evaluates to 0 (false),
control passes to the statement following statement.
The
expression
must have scalar type.
else
if (expression1)
statement1
else if (expression2)
statement2
else
statement3
If expression1 is true,
statement1
is executed, and control passes to the statement following
statement3.
Otherwise,
expression2 is evaluated.
If expression2 is true,
statement2
is executed, and control passes to the statement following
statement3.
Otherwise,
statement3
is executed, and control passes to the statement following
statement3.
An else is associated with the lexically nearest
if that has no else and that is at the same block level.
switch
switch (expression)
statement
Control jumps to or past
statement
depending on the value of
expression.
expression must have integral type.
Any optional case is labeled by an integral
constant expression.
If a default case is present, it is executed if no
other case match is found.
If no case matches, including default,
control goes to the statement following statement.
If the code associated with a case is executed,
control falls through to the next case unless a
break statement is included.
Each case of a switch must have a unique constant
value after conversion to the type of the controlling expression.
In practice,
statement
is usually a compound statement with
multiple cases, and
possibly a default;
the description above shows the minimum usage.
In the following example, flag gets set to 1
if i is 1 or 3, and to 0 otherwise:
switch (i) {
case 1:
case 3:
flag = 1;
break;
default:
flag = 0;
}