In Python hatten wir die Sequenz, Iteration (for, while) und Selektion (if). In C finden sich dafür natürlich Entsprechungen.
Die Sequenz ist wieder durch Hintereinanderschreiben zu erreichen; neu sind lediglich die Semikola:
msg = "Der Zähler ist jetzt %d\n"; count = 3 printf(msg, count);
Gegenüber Python wichtigster Unterschied: Die Bedingung muss immer in Klammern stehen.
if (str[0]=='a') {
printf("%s fängt mit a an\n", str);
} else {
printf("%s fängt nicht mit a an\n", str);
}
Allgemein:
| ifClause ::= | "if" "(" logicExpr ")" CmpdStmt |
| ["else" CmpdStmt ] | |
| CmpdStmt ::= | statement | "{" {statement } "}" |
Verbundanweisungen werden in C durch Klammern und nicht durch Einrückung definiert:
if (a%2!=0)
b = a/2+1;
printf("a ist ungerade\n");
else
printf("a ist gerade\n");
– im if-Zweig fehlt die Klammer. Schlimmer noch das dangling else problem:
if (a%4!=0)
if (a%2!=0)
printf("a ist ungerade\n");
else
printf("a ist durch 4 teilbar\n");
Das else gehört zum zweiten if! Deshalb: Immer geschweifte Klammern setzen.