Eingabe und Verzweigung

Letztes Update 2020/10/07 12:05
An der Konsole starten wir den Editor Nano:

nano eingabe.c

Hier geben wir folgendes ein:

/* eingabe.c */ #include <stdio.h> int main() { int alter; printf("Dein Alter: "); scanf("%d", &alter); if (alter > 1) { printf("Du bist %d Jahre alt", alter); } else { printf("Du bist %d Jahr alt", alter); } printf(" \n"); return 0; }

mit Strg+o den Text speichern und mit Strg+x den Editor verlassen.

Schauen wir uns die neuen Befehle im Listing an:

scanf
scanf ist auch Teil der stdio. Hier wird beim Programmablauf eine Eingabe erwartet. Da die Variable alter als Integer definiert ist int alter;, werden keine Kommawerte übernommen.

Die Bedeutung von &
Die Zeile scanf(„%d“, &alter); bedeutet, lies an der Stelle alter den Wert aus und gib ihn mir. D.h. & ist ein Adressoperator, der auf die Adresse von alter zeigt bzw. diese Adresse „referenziert“. An der Adresse von &alter steht der Integerwert, der gesucht ist.

ACHTUNG: Falls eine Dezimalzahl übernommen werden soll, darauf achten, dass in C das Komma durch einen Punkt eingegeben werden muss. Eine falsche Eingabe kann durch eine Prüfung im Programmablauf korrigiert werden.

if - else
Damit wird eine Verzweigung innerhalb des Programms anhand einer Bedingung entschieden. Hier wird in einer einfachen Form zwischen Ein- und Mehrzahl entschieden. Falls das eingegebene Alter größer als eins ist, soll in der Aushabe Jahre stehen, ansonsten (else) Jahr.

Das Schlüsselwort else wird verwendet, um den nachfolgenden Code auszuführen, wenn die Bedingung nicht zutrifft. Hier also, wenn alter nicht größer als eins ist.

Das Programm Compilieren

gcc -o eingabe eingabe.c

Ausgeführt wird das Programm, indem folgendes eingegeben wird:

./eingabe

Die Ausgaben an der Konsole könnten dann so aussehen:

pi@server:~/c_kurs $ ./eingabe
Dein Alter: 1
Du bist 1 Jahr alt
pi@server:~/c_kurs $
oder
pi@server:~/c_kurs $ ./eingabe
Dein Alter: 12
Du bist 12 Jahre alt
pi@server:~/c_kurs $