Programmieren in C

Programmsteuerung

Im Kapitel C Grundlagen wurden die Grundlagen der Programmiersprache C vorgestellt.
Dazu gehörten der Aufbau eines Programms, die Funktion main(), die Verwendung von Variablen und Datentypen sowie erste Ein- und Ausgaben.

In diesem Kapitel gehen wir einen entscheidenden Schritt weiter: Wir betrachten die eigentliche Programmsteuerung.
Ein Programm besteht nicht nur aus einer linearen Abfolge von Anweisungen, sondern muss in der Lage sein:

Diese Kontrollstrukturen sind die zentralen Werkzeuge, um komplexe Probleme in C zu lösen. Sie erlauben es, den Programmfluss gezielt zu steuern, statt Anweisungen starr und einmalig auszuführen.

Das Kapitel vermittelt deshalb:

Damit wird die Grundlage geschaffen, um Programme nicht nur korrekt, sondern auch dynamisch, flexibel und strukturiert zu entwickeln.

Bedingte Verzweigungen mit if

Programme sollen nicht nur Anweisungen nacheinander abarbeiten, sondern auch Entscheidungen treffen können.
In C geschieht das mit der if-Anweisung.
Sie prüft eine Bedingung (logischer Ausdruck) und entscheidet, ob ein Anweisungsblock ausgeführt wird oder nicht.

Syntax:

if(Bedingung) {
    // Anweisungen
}

Bedingung: ein logischer Ausdruck (liefert 0 = falsch oder ≠0 = wahr).
Anweisungen: Die Anweisungen werden ausgeführt, wenn die Bedingung wahr ist.

Beispiel für eine einfache if Bedingung:

#include <stdio.h>

int main() {
    int zahl = 10;

    if (zahl > 5) {
        printf("Die Zahl ist größer als 5.\n");
    }

    return 0;
}

Bedingte Verzweigungen mit if else

Mit else kann ein alternativer Anweisungsblock ausgeführt werden, falls die Bedingung nicht erfüllt ist.

Syntax:

if(Bedingung) {
    // Anweisungen true
}

else {
    // Anweisungen false
}

Bedingung: ein logischer Ausdruck (liefert 0 = falsch oder ≠0 = wahr).
Anweisungen true: Die Anweisungen werden ausgeführt, wenn die Bedingung wahr ist.
Anweisungen false: Die Anweisungen werden ausgeführt, wenn die Bedingung falsch ist.

Beispiel für if else:

int alter = 16;

if (alter >= 18) {
    printf("Volljährig.\n");
} else {
    printf("Noch nicht volljährig.\n");
}

Mehrfache Verzweigungen mit else if

Mit else if lassen sich mehrere Alternativen prüfen.

Beispiel für Mehrfachverzweigungen:

int note = 2;

if (note == 1) {
    printf("Sehr gut\n");
} else if (note == 2) {
    printf("Gut\n");
} else if (note == 3) {
    printf("Befriedigend\n");
} else {
    printf("Ausreichend oder schlechter\n");
}

Verschachtelte if-Anweisungen

if-Anweisungen können innerhalb anderer if- oder else-Blöcke stehen → verschachtelte Verzweigungen.

Beispiel für verschachtelte Verzweigungen:

int zahl = 12;

if (zahl > 0) {
    if (zahl % 2 == 0) {
        printf("Positive gerade Zahl\n");
    } else {
        printf("Positive ungerade Zahl\n");
    }
} else {
    printf("Zahl ist nicht positiv\n");
}

Bedingungen logisch kombinieren

Mit logischen Operatoren können mehrere Bedingungen logisch verknüpft werden:

Beispiel für logische Verknüpfung von Bedingungen:

int alter = 20;
char ausweis = 'J';

if (alter >= 18 && ausweis == 'J') {
    printf("Zutritt erlaubt.\n");
} else {
    printf("Kein Zutritt.\n");
}