Vergleichstabelle
Vergleichsgrundlage | ansonsten | Schalter |
---|---|---|
Basic | Welche Anweisung ausgeführt wird, hängt von der Ausgabe des Ausdrucks in der if-Anweisung ab. | Welche Anweisung ausgeführt wird, wird vom Benutzer festgelegt. |
Ausdruck | Die if-else-Anweisung verwendet mehrere Anweisungen für mehrere Auswahlmöglichkeiten. | Die switch-Anweisung verwendet einen einzelnen Ausdruck für mehrere Auswahlmöglichkeiten. |
Testen | if-else-Anweisungstest auf Gleichheit sowie auf logischen Ausdruck. | switch-Anweisungstest nur auf Gleichheit. |
Auswertung | if-Anweisung wertet einen Ganzzahl-, Zeichen-, Zeiger- oder Gleitkommatyp oder einen booleschen Typ aus. | Die switch-Anweisung wertet nur den Zeichen- oder Ganzzahlwert aus. |
Reihenfolge der Ausführung | Entweder wenn die Anweisung ausgeführt wird oder die Anweisung wird ausgeführt. | Die switch-Anweisung führt einen Fall nach dem anderen aus, bis eine break-Anweisung angezeigt wird oder die Anweisung zum Ende der switch-Anweisung erreicht wird. |
Standardausführung | Wenn die Bedingung in if-Anweisungen falsch ist, wird die else-Anweisung standardmäßig ausgeführt, wenn sie erstellt wird. | Wenn die Bedingung in switch-Anweisungen nicht mit einem der Fälle übereinstimmt, werden die Standardanweisungen für diese Instanz ausgeführt, wenn sie erstellt werden. |
Bearbeitung | Es ist schwierig, die if-else-Anweisung zu bearbeiten, wenn die verschachtelte if-else-Anweisung verwendet wird. | Es ist leicht, Schaltfälle zu bearbeiten, da sie leicht erkannt werden. |
Definition von if-else
Die if-else-Anweisungen gehören zu den Auswahlanweisungen in OOP. Die allgemeine Form der if-else-Anweisungen ist wie folgt
if (Ausdruck) {Anweisung (en)} else {Anweisung (en)}
Dabei sind "if" und "else" die Schlüsselwörter und die Anweisungen können eine einzelne Anweisung oder ein Anweisungsblock sein. Der Ausdruck wird für jeden Wert ungleich Null als "wahr" und für Null als "falsch" bewertet.
Der Ausdruck in der if-Anweisung kann eine Ganzzahl, ein Zeichen, einen Zeiger, einen Gleitkommawert oder einen booleschen Typ enthalten. Die else-Anweisung ist in einer if-else-Anweisung optional. Wenn der Ausdruck true zurückgibt, werden die Anweisungen in if ausgeführt, und falls er false zurückgibt, werden die Anweisungen in der else-Anweisung ausgeführt. Falls eine else-Anweisung nicht erstellt wird, wird keine Aktion ausgeführt, und die Steuerung des Programms springt heraus einer if-else-Anweisung.
Lasst uns mit einem Beispiel verstehen.
int i = 45, j = 34; if (i == 45 & j == 34) {cout << "Ich wähle dunkle Choclate"; brechen; Fall 2: Cout << "Sie wählen Süßigkeiten"; brechen; Fall 3: Cout << "Sie wählen Lollypop"; brechen; . . Default Cout << "Sie wählen nichts"; }
Hier entscheidet der Wert von „i“, welcher Fall ausgeführt werden soll. Wenn ein Benutzer den Wert „i“ außer 1, 2 oder 3 angibt, wird der Standardfall ausgeführt.
Hauptunterschiede zwischen if-else und switch
- Der Ausdruck innerhalb einer if -Anweisung entscheidet, ob die Anweisungen im Block oder unter else-Block ausgeführt werden sollen. Auf der anderen Seite entscheiden expression innerhalb der switch-Anweisung, welcher Fall ausgeführt werden soll.
- Sie können mehrere if-Anweisungen für die Mehrfachauswahl von Anweisungen haben. Bei der Umschaltung haben Sie nur einen Ausdruck für die Mehrfachauswahl.
- If-esle-Anweisung prüft auf Gleichheit sowie auf logischen Ausdruck. Auf der anderen Seite prüft der Schalter nur die Gleichheit.
- Die if -Anweisung wertet einen Ganzzahl-, Zeichen-, Zeiger- oder Gleitkommatyp oder einen booleschen Typ aus. Die switch-Anweisung hingegen wertet nur den Datentyp "character" oder "integer" aus.
- Die Reihenfolge der Ausführung ist wie eine der Anweisungen unter, wenn der Block ausgeführt wird, oder die Anweisungen unter else-Anweisung werden ausgeführt. Andererseits entscheidet der Ausdruck in der switch-Anweisung, welcher Fall ausgeführt werden soll. Wenn Sie nach jedem Fall keine break-Anweisung anwenden, wird sie bis zum Ende der switch-Anweisung ausgeführt.
- Wenn der Ausdruck inside if falsch ist, wird eine Anweisung in else block ausgeführt. Wenn der Ausdruck in der switch-Anweisung falsch ist, werden die Standardanweisungen ausgeführt.
- Es ist schwierig, If-else-Anweisungen zu bearbeiten, da es mühsam ist, zu verfolgen, wo die Korrektur erforderlich ist. Andererseits ist es einfach, Schalteranweisungen zu bearbeiten, da sie leicht zu verfolgen sind.
Fazit:
Die switch-Anweisung ist leicht zu bearbeiten, da sie die unterschiedlichen Fälle für verschiedene Anweisungen erstellt hat, während es in verschachtelten if-else-Anweisungen schwierig wird, die zu bearbeitenden Anweisungen zu identifizieren.