Datei: svn/ckurs/trunk/c_texte/c_statem.txt, Datum: 30. Juni 2015 Anweisungen in C, C++ und Java 1. Die Verbundanweisung (compound statement) { Anweisungen; } { Vereinbarungen; Anweisungen; } Verbundanweisung Block 2. Die Ausdrucksanweisung (expression statement) Rechenausdruck; 5 * a + b; scanf ("%d", &n); 3. Die leere Anweisung (null statement) ; 4. Bedingte Anweisungen (conditional statements) 4.1. Einseitig bedingte Anweisung if (Bedingung) Anweisung; if (x < 0) printf ("Fehler"); 4.2. Zweiseitig bedingte Anweisung if (Bedingung) Anweisung else Anweisung; if (x < 0) printf ("Fehler"); else printf ("Wurzel (%f) = %f", x, sqrt (x)); 4.3. Mehrseitig bedingte Anweisung if (Bed1 ) Anweisung1 ; else if (Bed2 ) Anweisung2 ; else if (Bed3 ) Anweisung3 ; ... else if (Bedn ) Anweisungn ; else Anweisungn+1 ; long int x; double y, s; x = e; if (x < 4537) s = 0; else if (x < 18036) s = 0.22 * x - 998; else if (x < 80028) { y = (x - 18000) / 10000.0; s = (((0.79*y-30.82)*y+452)*y+2200)*y+2962; } else if (x < 130032) { y = (x - 80000) / 10000.0; s = (60 * y + 5000) * y + 27798; } else s = (0.56 * x - 18502); 4.4. Fallunterscheidung switch (Ausdruck) { case w1 : case w2 : case w3 : case w4 : case w5 : case w6 : ... default: } Anweis.1 Anweis.1/2 Anweis.1/2/3 break; Anweis.4/5 break; Anweis.6 break; ... Anweisungen break; Ausdruck ist ganzzahlig wi ganzzahlige Werte wi ̸= wj für i ̸= j maximal 1 default break; beendet Anweisungsgruppe maximal 1 default: 5. Schleifen (Wiederholungsanweisungen, iteration statements) 2 5. Schleifen (Wiederholungsanweisungen, iteration statements) 5.1. Abweisende Schleife while (Bedingung) Anweisung; 5.2. Annehmende Schleife do { Anweisungen; } while ( Bedingung); 5.3. Zählschleife (for-Schleife) for (A; B; C) D; A; while (B) { D; C; } A, B, C und auch D dürfen fehlen. Eine fehlende Bedingung (B) ist immer erfüllt und führt zu einer endlosen Schleife. Deshalb wird for (;;) auch wie forever gesprochen. ≡ 5.4. Seitenausstiege while (Bed.) { continue; break; } do { continue; break; } while (Bed.) for (A; B; C) { continue; break; } 6. Sprünge 6.1. continue (bei while/do/for) continue beginnt die nächste Iteration. 6.2. break (bei while/do/for/switch) break beendet die umschließende Anweisung. 6.3. return Wert (Funktionsende; in main Programmende) return beendet die umschließende Funktion. Im Fall von main wird das Programm selbst beendet. 6.4. exit (Wert) (Programmende) exit beendet das Programm. exit benötigt #include <stdlib.h>. 6.5. goto Marke (springt nach Marke:) CACM ,,Go To Statement Considered Harmful“ by Dijkstra (1968) (z.B.: http://www.acm.org/classics/oct95/)