Ternärer Operator
Wie kann man eine if-else-Anweisung abkürzen?
Die if
-Anweisung sieht nicht immer elegant aus, aber Java bietet eine schnellere und bequemere Möglichkeit, Bedingungen zu prüfen. Diese nennt sich ternärer Operator und hat folgende Syntax:
Zuerst wird eine Bedingung gesetzt, zum Beispiel 10 > 5
, und danach folgt ein Fragezeichen ?
. Wenn die Bedingung zu true
ausgewertet wird, gelangt man in den true-Block, zum Beispiel System.out.println("That's true");
. Wird die Bedingung zu false
ausgewertet, gelangt man in den false-Block, wo beispielsweise System.out.println("That's not true");
stehen könnte.
Analysieren wir ein praxisnäheres Beispiel:
Main.java
package com.example; public class Main { public static void main(String[] args) { System.out.println(10 > 5 ? "That's true" : "That's false"); System.out.println(5 > 6 ? "That's true" : "That's false"); } }
Vielleicht ist Ihnen aufgefallen, dass wir den Ternär-Operator innerhalb der System.out.println();
-Anweisung verwendet haben. Das ist der Hauptzweck des Ternär-Operators – Sie können ihn in Ausgabebefehlen einsetzen, um den Codeumfang deutlich zu reduzieren.
Der Ternär-Operator kann auch bei der Initialisierung oder beim Zurückgeben von Werten verwendet werden. Mehr über das Zurückgeben von Werten erfahren Sie im nächsten Abschnitt, wenn Sie Methoden behandeln.
Beispiel für die Verwendung des Ternär-Operators bei der Initialisierung eines Wertes:
Main.java
package com.example; public class Main { public static void main(String[] args) { final int a = 10 > 2 ? 5 : 2; final int b = 10 < 2 ? 5 : 2; System.out.println("Variable 'a' has value: " + a); System.out.println("Variable 'b' has value: " + b); } }
Nachfolgend ein Beispielcode, bei dem der Ternär-Operator durch eine reguläre if
-Anweisung ersetzt wurde, um das Funktionsprinzip besser zu verdeutlichen:
Main.java
package com.example; public class Main { public static void main(String[] args) { int a = 0; int b = 0; if (10 > 2) { a = 5; } else { a = 2; } if (10 < 2) { b = 5; } else { b = 2; } System.out.println("Variable 'a' has value: " + a); System.out.println("Variable 'b' has value: " + b); } }
Das Ergebnis ist dasselbe, aber Sie sehen, wie viel Platz wir durch die Verwendung des ternären Operators sparen.
Swipe to start coding
-
Schreiben Sie einen Code, der
"The string contains Florida"
ausgibt, wenn der String das Wort Florida enthält, oder"Florida is not found"
, wenn dies nicht der Fall ist. -
Verwenden Sie den ternären Operator, um damit zu üben.
Lösung
solution.java
Danke für Ihr Feedback!