Control statements

If--then--else
....if (temperature>212) {
..... ...boil();
.........}
.....else if (temperature>32) {
........pour();
........}
.....else {
........skate();
........}


while loop
....while (x != A[i]) {
.........i = i+1;
.........}

Loop and conditional guards delimited by parens ().
Guards should evaluate to an integer; zero means false, nonzero means true.



do--while loop
....do {
........c = get_next_input();
........done = process(c);
........} while (!done);

``Not'' operator is !:.!= -- not equal, !done -- false (zero) if done is
....true (nonzero), true otherwise.



for loop
....for (k=0; k<n; k=k+1) {
........sum = sum + B[k];
........}

Guard on for loop has three parts separated by semicolons: initialization
(done once), continue test (done before each iteration), increment (done
after each iteration).

Loop terminates when continue test fails (evaluates to false).

Do--while loop performs at least one iteration. For and while loops may
perform zero iterations.



switch (case) statement
....switch (first_character) {
........case 'i':
............insert_text();
............break;
........case 'a':
............append_text();
............break;
........case 'q':
........case 'Q':
............quit();
............break;
....v...default:
............error();
............break;

........}

Case labels must be constant. Cases may have multiple labels.
End each case with a break statement.