0Pricing
C++ Academy · Lektion

Verzweigungen: if-else, ternär, switch-case

Wählen Sie für klare Verzweigungen zwischen if-else-Ketten, Ternärausdrücken und switch-Anweisungen.

Verzweigungen: if-else, ternär, switch-case ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Die if-Anweisung

Die grundlegende bedingte Anweisung. Der Rumpf wird ausgeführt, wenn die Bedingung wahr ist. Geschweifte Klammern sind bei einer einzelnen Anweisung optional, werden aber grundsätzlich empfohlen.

int score = 85;
if (score >= 60) {
    std::cout << "Pass\n";
}

if-else-Ketten

Prüfen Sie Alternativen mit else if und einem abschließenden else. Der erste zutreffende Zweig wird ausgeführt.

if (score >= 90) std::cout << "A";
else if (score >= 80) std::cout << "B";
else if (score >= 70) std::cout << "C";
else std::cout << "F";

Boolesche Bedingungen

Jeder Ausdruck, der in bool konvertiert werden kann, ist geeignet. Zeiger werden bei null als false ausgewertet und Ganzzahlen bei null ebenfalls als false. Seien Sie für mehr Klarheit ausdrücklich.

Initialisierung in if (C++17)

Mit C++17 können Sie innerhalb von if eine Variable deklarieren. Ihr Gültigkeitsbereich ist auf den Rumpf der if-else-Anweisung beschränkt.

if (auto it = map.find(key); it != map.end()) {
    std::cout << it->second;
}

Der ternäre Operator

condition ? a : b liefert einen von zwei Werten zurück. Ideal für einfache Entscheidungen, aber ungeeignet für verschachtelte Logik.

int max = (a > b) ? a : b;
std::string msg = (n == 1) ? "item" : "items";

Verschachtelte ternäre Operatoren vermeiden

Verschachtelte ternäre Operatoren sind schwer zu lesen. Verwenden Sie stattdessen if-else oder lagern Sie die Logik in eine Hilfsfunktion aus.

// Hard to read
auto label = (n < 0) ? "neg" : (n == 0) ? "zero" : "pos";

// Clearer
std::string label;
if (n < 0) label = "neg";
else if (n == 0) label = "zero";
else label = "pos";

Die switch-Anweisung

Vergleichen Sie einen Wert mit mehreren Konstanten. Jeder Zweig benötigt break, damit die Ausführung nicht in den nächsten case-Zweig fällt.

switch (day) {
    case 1: std::cout << "Mon"; break;
    case 2: std::cout << "Tue"; break;
    default: std::cout << "?";  break;
}

Beabsichtigtes Fallthrough

Gruppieren Sie mehrere cases, die denselben Code verwenden. C++17 hat [[fallthrough]] als Markierung für den Compiler eingeführt.

switch (c) {
    case 'a': case 'e': case 'i': case 'o': case 'u':
        std::cout << "vowel"; break;
    default:
        std::cout << "consonant";
}

Einschränkungen von switch

switch funktioniert nur mit Ganzzahl- und Enum-Typen. Für Zeichenketten verwenden Sie if-else oder eine Hashmap.

Initialisierung in switch (C++17)

Ähnlich wie bei if können Sie im Header von switch eine Variable deklarieren.

switch (auto value = compute(); value) {
    case 0: ...
    default: ...
}

Muster: Nachschlagetabelle

Für zweigabhängige Entscheidungen anhand von Zeichenketten kann eine std::unordered_map übersichtlicher sein als eine if-else-Kette.

std::unordered_map<std::string, std::function<void()>> commands = {
    {"start", []{ start(); }},
    {"stop",  []{ stop();  }}
};
if (auto it = commands.find(cmd); it != commands.end())
    it->second();

Kurzer Test

Was geschieht, wenn einem case in einem switch das break fehlt und der nächste case-Zweig nicht leer ist?

Zusammenfassung

Verwenden Sie if-else für allgemeine Verzweigungen, den ternären Operator für kurze Entscheidungen zwischen Werten und switch, wenn ein Wert mit vielen Ganzzahlkonstanten verglichen wird. Initialisierungsanweisungen in C++17 sorgen für übersichtliche Gültigkeitsbereiche.

Häufig gestellte Fragen

Ist die Lektion „Verzweigungen: if-else, ternär, switch-case“ kostenlos?

Ja — der vollständige Text von „Verzweigungen: if-else, ternär, switch-case“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Verzweigungen: if-else, ternär, switch-case“?

Wählen Sie für klare Verzweigungen zwischen if-else-Ketten, Ternärausdrücken und switch-Anweisungen. Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C++ Academy zu starten?

Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Verzweigungen: if-else, ternär, switch-case“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?

Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Verzweigungen: if-else, ternär, switch-case
  2. Schleifenmuster: for, while, do-while
  3. Range-basierte for-Schleifen mit Containern
  4. Vorzeitige Rückgaben, break, continue und goto
← Zurück zu C++ Academy