C++
VeröffentlichtRevision 1

Entscheidungen mit if und else

Eine Bedingung ist ein Ausdruck, der hier als wahr oder falsch ausgewertet wird. Eine Verzweigung wählt abhängig davon einen Programmweg. Mit if führst du einen Block bei wahrer Bedingung aus, mit else einen alternativen Block.

Entscheidungen mit if und else#

Entscheidungen und Schleifen · Lektion 18 von 60

Voraussetzungen: Operatoren. Lernziel: Dein Programm entscheidet anhand geprüfter Werte.

Eine Bedingung ist ein Ausdruck, der hier als wahr oder falsch ausgewertet wird. Eine Verzweigung wählt abhängig davon einen Programmweg. Mit if führst du einen Block bei wahrer Bedingung aus, mit else einen alternativen Block.

C++
1#include <iostream>2 3int main() {4    int punkte{};5    if (!(std::cin >> punkte) || punkte < 0 || punkte > 100) {6        std::cerr << "Punkte zwischen 0 und 100 erwartet.\n";7        return 1;8    }9    if (punkte >= 90) {10        std::cout << "Sehr gut\n";11    } else if (punkte >= 50) {12        std::cout << "Bestanden\n";13    } else {14        std::cout << "Noch ueben\n";15    }16}

Reihenfolge ist Teil der Logik#

Die Kette prüft von oben nach unten. Sobald eine Bedingung erfüllt ist, wird ihr Block ausgeführt; die übrigen Alternativen entfallen. Deshalb steht >= 90 vor >= 50. Würde >= 50 zuerst geprüft, kämen auch 95 Punkte dort an.

Mehrere unabhängige if-Anweisungen sind etwas anderes: Dabei können mehrere Blöcke ausgeführt werden. Verwende eine else if-Kette für sich ausschließende Kategorien und einzelne Bedingungen für unabhängige Prüfungen.

Frühe Rückkehr#

Die erste Prüfung des Beispiels beendet das Programm bei unzulässiger Eingabe. Eine solche Schutzprüfung, auch Guard Clause, hält den normalen Ablauf weniger verschachtelt. Verschachtelung bedeutet hier einen Block innerhalb eines anderen Blocks.

Benutze geschweifte Klammern auch bei nur einer Anweisung. So führt eine später ergänzte zweite Zeile nicht versehentlich außerhalb der Bedingung aus. Ein else gehört ohne Klammerstruktur zum nächstliegenden passenden if, nicht zu der optisch ähnlich eingerückten Zeile.

Der bedingte Operator#

bedingung ? wertWennWahr : wertWennFalsch liefert einen von zwei Werten. Er heißt bedingter oder ternärer Operator, weil er drei Operanden hat. Für eine kurze Auswahl ist er hilfreich; für mehrere Aktionen sind if-Blöcke besser lesbar.

Übung#

Welche Ausgaben entstehen bei 49, 50, 89, 90 und 101 Punkten?

Lösung

49: „Noch ueben“. 50 und 89: „Bestanden“. 90: „Sehr gut“. 101 wird schon vor der Einteilung als ungültig abgelehnt. Solche Werte direkt an einer Grenze heißen Grenzfälle.

Weiterlernen#

Zurück: Texte mit std::string verarbeiten · Kursübersicht · Weiter: Mehrere feste Fälle mit switch

Mitwirkende 1

Menschen, deren Änderungen in dieser Seite veröffentlicht wurden.

Kommentare 0

Kommentare sind für diese Seite deaktiviert.