5.7 Kontrollfragen und Aufgaben
-
Welchen Wert gibt eine bedingte if-Anweisung zwischen den Klammern () zurück, wenn der Ausdruck der Bedingung richtig oder falsch ist?
-
Wie lautet die alternative Verzweigung einer if-Anweisung, und wann wird diese ausgeführt?
-
Was können Sie verwenden, wenn Sie mehrere Verzweigungen benötigen?
-
Welche besondere Bedeutung spielt die Anweisung break in einem switch-Konstrukt?
-
Wird keine passende case-Marke in einem switch-Konstrukt angesprungen, findet keine Verarbeitung statt. Wie können Sie trotzdem eine optionale Marke im switch-Konstrukt einbauen, die ausgeführt wird, wenn in keine case-Marke gesprungen wird?
-
In C gibt es drei logische Operatoren. Nennen Sie diese, und geben Sie an, wozu sie in der Regel verwendet werden.
-
Finden Sie heraus, ob die logischen Verknüpfungen 1 (wahr) oder 0 (unwahr) ergeben. Versuchen Sie, die Verknüpfungen ohne ein Programm für die Ausgabe der einzelnen Werte zu lösen.
-
Erstellen Sie ein Listing, das überprüft, ob eine gerade oder ungerade Zahl eingegeben wurde (Tipp: %-Operator verwenden). Beschränken Sie außerdem die Zahlen auf einen Bereich von 1 bis 100 (Tipp: logische Operatoren verwenden).
-
Schreiben Sie das folgende Programm um, damit eine switch-Fallunterscheidung statt der vielen if-Anweisungen verwendet wird.
00 // Kapitel5/aufgabe001.c
01 #include <stdio.h>
02 int main(void) {
03 int work = 0;
04 printf("-1- PC 1 hochfahren\n");
05 printf("-2- PC 2 hochfahren\n");
06 printf("-3- Drucker einschalten\n");
07 printf("-4- Kaffee machen\n");
08 printf("-5- Feierabend machen\n");
09 printf("Was wollen Sie tun: ");
10 if( scanf("%d", &work) != 1 ) {
11 printf("Fehler bei der Eingabe...\n");
12 return 1;
13 }
14 if( work == 1 ) {
15 printf("PC 1 wird hochgefahren\n");
16 }
17 else if( work == 2 ) {
18 printf("PC 2 wird hochgefahren\n");
19 }
20 else if( work == 3 ) {
21 printf("Drucker wird eingeschaltet\n");
22 }
23 else if( work == 4 ) {
24 printf("Kaffee wird gemacht\n");
25 }
26 else if( work == 5 ) {
27 printf("Gute Nacht\n");
28 }
29 else {
30 printf("Falsche Eingabe!\n");
31 }
32 return 0;
33 }
Im nächsten Kapitel werden wir eines der wohl wichtigsten Themen behandeln, nämlich die mehrfache bedingte Ausführung von Anweisungsblöcken mittels Schleifen. Ohne Schleifen können Sie nicht ernsthaft C programmieren, weil viele vor allem mathematische Verfahren (sogenannte Algorithmen) darauf beruhen, die gleichen Schritte immer wieder auszuführen. Meistens tritt dann irgendwann eine bestimmte Abbruchbedingung auf. Das populärste Beispiel ist hier wahrscheinlich die schriftliche Division.