In general control structures in C are very similar to those in Java.
The for
loop is very different than in Python. Remember
when writing boolean expressions that all numbers are booleans in C:
zero is false, all else is true! Anywhere a statement appears in
these generic forms, a block statement enclosed in curly braces ({})
could be used instead.
Decision statements
Here are generic forms of the decision statements.
if (boolean expr)
true-statement; // or { block }
if (boolean expr)
true-statement; // or { block }
else
false-statement; // or { block }
switch (integer expr) {
case c1: stmt1; // execution starting point for c1
case c2: stmt2;
break; // exits switch block
case c3:
case c4: stmt3;
stmt4; // executes stmt3, stmt4 and stmtlast for c3 or c4 matches
default: stmtlast; // if no case matches
}
Loops
Here are generic forms of the three loop types in C.
while (boolean expr)
true-statement; // or { block }, repeats to while
do {
statement-always-executes-at-least-once;
} while (boolean expr); // repeat while true
for (init; boolean expr; update)
true-statement; // or { block }
is equivalent to
init;
while (boolean expr) {
true-statement;
update;
}
Loop invariants
These are statements that should be true at the start of every
iteration. We can use assert
statements to check if
they are good (true):
// need #include assert.h for assert function
// need #include math.h for pow function and compile with -lm option to link math library
int i = 0;
int val = 1;
while (i < 15 ) {
assert(val == pow(2,i));
i++;
val *= 2;
}