Übung: Implementieren des bedingten Operators
- 7 Minuten
Angenommen, Sie müssen schnell bestimmen, ob der Kauf eines Kunden für einen Aktionsrabatt in Frage kommt. Die Details für die Werbeaktion weisen darauf hin, dass der Kauf, wenn der Kaufwert höher als 1000 Euro ist, für einen Rabatt von 100 Euro berechtigt ist. Wenn der Kaufbetrag 1000 Euro oder weniger beträgt, ist der Kauf für einen Rabatt von 50 Euro berechtigt.
Obwohl Sie sicherlich das if ... elseif ... else-Verzweigungskonstrukt verwenden könnten, um diese Geschäftsregel auszudrücken, ist die Verwendung des bedingten Operators zur Bewertung der Berechtigung für den Aktionsrabatt möglicherweise eine bessere Wahl. Der bedingte Operator weist ein kompaktes Format auf, das einige Codezeilen einspart und die Absicht des Codes möglicherweise deutlicher macht.
Was ist der bedingte Operator?
Der bedingte Operator?: wertet einen booleschen Ausdruck aus und gibt ein oder zwei Ergebnisse zurück, abhängig davon, ob der Wert des booleschen Ausdrucks „true“ oder „false“ ist. Der bedingte Operator wird häufig als ternärer bedingter Operator bezeichnet.
Die grundlegende Form sieht wie folgt aus:
<evaluate this condition> ? <if condition is true, return this value> : <if condition is false, return this value>
Nehmen Sie sich kurz Zeit, um zu überlegen, wie Sie den bedingten Operator auf das Aktionsrabattszenario anwenden würden. Ihr Ziel ist es, dem Kunden eine Nachricht anzuzeigen, die die Höhe des Rabatts in Prozent anzeigt. Die Höhe des Rabatts basiert darauf, ob der Kunde mehr als 1000 Euro für seinen Kauf ausgegeben hat.
Hinzufügen von Code, der einen bedingten Operator verwendet
Stellen Sie sicher, dass eine leere „Program.cs“-Datei in Visual Studio Code geöffnet ist. Öffnen Sie bei Bedarf Visual Studio Code, und führen Sie dann die folgenden Schritte aus, um eine „Program.cs“-Datei im Editor vorzubereiten:
- Klicken Sie im Menü Datei auf Ordner öffnen.
- Verwenden Sie das Dialogfeld „Ordner öffnen“, um zum Ordner CsharpProjects zu navigieren und diesen dann zu öffnen.
- Wählen Sie im EXPLORER-Bereich von Visual Studio Code die Datei Program.cs aus.
- Wählen Sie im Visual Studio Code-Menü Auswahl die Option Alle auswählen aus, und drücken Sie dann die ENTF-Taste.
Geben Sie den folgenden Code in den Visual Studio Code-Editor ein.
int saleAmount = 1001; int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {discount}");Wählen Sie im Visual Studio Code-Menü Datei die Option Speichern aus.
Die Datei „Program.cs“ muss vor dem Erstellen oder Ausführen des Codes gespeichert werden.
Klicken Sie im Panel „Explorer“ mit der rechten Maustaste auf TestProject, und klicken Sie dann auf In integriertem Terminal öffnen, um ein Terminal am Speicherort des TestProject-Ordners zu öffnen.
Ein Terminalbereich, der eine Eingabeaufforderung anzeigt, sollte nun geöffnet sein. An der Eingabeaufforderung sollte der Ordnerpfad für den Speicherort des TestProject-Ordners angezeigt werden.
Geben Sie an der Eingabeaufforderung des Terminals dotnet run ein, um Ihren Code auszuführen, und drücken Sie dann die EINGABETASTE.
Wenn Sie den Code ausführen, sollte die folgende Ausgabe angezeigt werden:
Discount: 100
Inlineverwendung des bedingten Operators
Sie können diesen Code noch weiter komprimieren, indem Sie die temporäre Variable discount eliminieren.
Aktualisieren Sie Ihren Code im Visual Studio Code-Editor wie folgt:
int saleAmount = 1001; // int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");Wählen Sie im Visual Studio Code-Menü Datei die Option Speichern aus.
Geben Sie an der Eingabeaufforderung des Terminals dotnet run ein, um Ihren Code auszuführen, und drücken Sie dann die EINGABETASTE.
Beachten Sie, dass die Ausgabe identisch ist.
Nehmen Sie sich einen Moment Zeit, um die aktualisierte
Console.WriteLine()-Anweisung zu untersuchen.Beachten Sie, dass die gesamte Anweisung des bedingten Operators in Klammern umschließt werden muss. Die Klammern stellen sicher, dass die Runtime Ihre Absicht versteht, nämlich das bedingte Ergebnis statt das Ergebnis der Auswertung der Bedingung anzuzeigen (saleAmount > 1000).
Hinweis
Obwohl dieses Beispiel kompakt ist und zeigt, was möglich ist, ist es etwas schwieriger zu lesen. Es ist nicht immer eine gute Idee, Codezeilen zu kombinieren, insbesondere, wenn dadurch die allgemeine Lesbarkeit Ihres Codes beeinträchtigt wird. Diese Entscheidung ist jedoch subjektiv.
Zusammenfassung
Beachten Sie folgendes Fakten bezüglich des bedingten Operators:
- Sie können den bedingten Operator verwenden, um die Größe des Codes zu reduzieren, aber Sie sollten sicherstellen, dass der Ergebniscode leicht lesbar ist.
- Sie können den bedingten Operator verwenden, wenn Sie einen Wert zurückgeben müssen, der auf einer binären Bedingung basiert. Ihr Code gibt die erste Option zurück, wenn die Bedingung TRUE ergibt, und die zweite Option wird zurückgegeben, wenn die Bedingung FALSE ergibt.