W tym samouczku dowiesz się o operatorze trójargumentowym i jego zastosowaniu w Javie na podstawie przykładów.
W języku Java w określonych sytuacjach można użyć operatora trójskładnikowego do zastąpienia instrukcji if… else. Zanim dowiesz się o operatorze trójargumentowym, odwiedź instrukcję Java if… else.
Operator trójargumentowy w Javie
Operator trójskładnikowy ocenia warunek testu i wykonuje blok kodu na podstawie wyniku warunku.
Jego składnia to:
condition ? expression1 : expression2;
Tutaj stan jest oceniany i
- jeśli warunek jest taki
true
, wykonywane jest wyrażenie1. - A jeśli warunek jest taki
false
, wykonywane jest wyrażenie2.
Operator trójskładnikowy przyjmuje 3 operandy (warunek, wyrażenie1 i wyrażenie2). Stąd nazwa operatora trójskładnikowego .
Przykład: operator trójargumentowy Java
import java.util.Scanner; class Main ( public static void main(String() args) ( // take input from users Scanner input = new Scanner(System.in); System.out.println("Enter your marks: "); double marks = input.nextDouble(); // ternary operator checks if // marks is greater than 40 String result = (marks> 40) ? "pass" : "fail"; System.out.println("You " + result + " the exam."); input.close(); ) )
Wyjście 1
Wpisz swoje oceny: 75 Zdajesz egzamin.
Załóżmy, że użytkownik wprowadzi 75 . Następnie warunek zostanie marks> 40
oceniony jako true
. Stąd pierwszy przebieg wyrażenia jest przypisywany do wyniku.
Wyjście 2
Wpisz swoje oceny: 24 Nie zdałeś egzaminu.
Teraz załóżmy, że użytkownik wprowadzi 24 . Następnie warunek zostanie marks> 40
oceniony jako false
. W związku z tym do wyniku przypisywane jest drugie wyrażenie niepowodzenie.
Kiedy używać trójskładnikowego operatora?
W Javie operator trójskładnikowy może służyć do zastępowania niektórych typów if… else
instrukcji. Na przykład,
Możesz zastąpić ten kod
class Main ( public static void main(String() args) ( // create a variable int number = 24; if(number> 0) ( System.out.println("Positive Number"); ) else ( System.out.println("Negative Number"); ) ) )
z
class Main ( public static void main(String() args) ( // create a variable int number = 24; String result = (number> 0) ? "Positive Number" : "Negative Number"; System.out.println(result); ) )
Wynik
Liczba dodatnia
Tutaj oba programy dają ten sam wynik. Jednak użycie operatora trójskładnikowego sprawia, że nasz kod jest bardziej czytelny i czysty.
Uwaga : operatora trójargumentowego należy używać tylko wtedy, gdy wynikowa instrukcja jest krótka.
Zagnieżdżone operatory trójskładnikowe
Możliwe jest również użycie jednego operatora trójskładnikowego wewnątrz innego operatora trójskładnikowego. W Javie nazywany jest zagnieżdżonym operatorem trójskładnikowym.
Oto program do znajdowania największej z 3 liczb przy użyciu zagnieżdżonego operatora trójskładnikowego.
class Main ( public static void main(String() args) ( // create a variable int n1 = 2, n2 = 9, n3 = -11; // nested ternary operator // to find the largest number int largest = (n1>= n2) ? ((n1>= n3) ? n1 : n3) : ((n2>= n3) ? n2 : n3); System.out.println("Largest Number: " + largest); ) )
Wynik
Największa liczba: 9
W powyższym przykładzie zwróć uwagę na użycie operatora trójskładnikowego,
(n1>= n2) ? ((n1>=n3) ? n1 : n3) : ((n2>= n3) ? n2 : n3);
Tutaj,
- (n1> = n2) - pierwszy warunek testowy, który sprawdza, czy n1 jest większe niż n2
- (n1> = n3) - drugi warunek testowy, który jest wykonywany, jeśli pierwszy warunek jest
true
- (n2> = n3) - trzeci warunek testowy, który jest wykonywany, jeśli pierwszy warunek jest
false
Uwaga : nie zaleca się używania zagnieżdżonych operatorów trójskładnikowych. Dzieje się tak, ponieważ sprawia, że nasz kod jest bardziej złożony.