Operator trójargumentowy Java (z przykładem)

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> 40oceniony 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> 40oceniony 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… elseinstrukcji. 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 jesttrue
  • (n2> = n3) - trzeci warunek testowy, który jest wykonywany, jeśli pierwszy warunek jestfalse

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.

Interesujące artykuły...