V tomto tutoriálu se pomocí příkladů dozvíte o ternárním operátoru a jeho použití v Javě.
V Javě lze v určitých situacích použít ternární operátor k nahrazení příkazu if… else. Než se dozvíte o ternárním operátoru, nezapomeňte navštívit příkaz Java if… else.
Ternární operátor v Javě
Ternární operátor vyhodnotí podmínku testu a provede blok kódu na základě výsledku podmínky.
Je to syntaxe:
condition ? expression1 : expression2;
Zde se vyhodnotí stav a
- pokud je podmínka
true
, výraz1 se provede. - A pokud je podmínka
false
, výraz2 se provede.
Ternární operátor přijímá 3 operandy (podmínka, výraz1 a výraz2). Proto název ternární operátor .
Příklad: Java Ternary Operator
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(); ) )
Výstup 1
Zadejte své známky: 75 Složili jste zkoušku.
Předpokládejme, že uživatel zadá 75 . Poté se stav marks> 40
vyhodnotí jako true
. K výsledku je tedy přiřazen první průchod výrazu.
Výstup 2
Zadejte své známky: 24 Zkoušku neuspějete.
Nyní předpokládejme, že uživatel zadá 24 . Poté se stav marks> 40
vyhodnotí jako false
. K výsledku je tedy přiřazen druhý výraz selhání.
Kdy použít ternárního operátora?
V Javě lze ternární operátor použít k nahrazení určitých typů if… else
příkazů. Například,
Tento kód můžete nahradit
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"); ) ) )
s
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); ) )
Výstup
Kladné číslo
Zde oba programy poskytují stejný výstup. Díky použití ternárního operátoru je však náš kód čitelnější a čistější.
Poznámka : Ternární operátor byste měli používat, pouze pokud je výsledný příkaz krátký.
Vnořené ternární operátory
Je také možné použít jeden ternární operátor uvnitř jiného ternárního operátoru. V Javě se tomu říká vnořený ternární operátor.
Zde je program pro vyhledání největšího ze 3 čísel pomocí vnořeného ternárního operátoru.
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); ) )
Výstup
Největší číslo: 9
Ve výše uvedeném příkladu si všimněte použití ternárního operátoru,
(n1>= n2) ? ((n1>=n3) ? n1 : n3) : ((n2>= n3) ? n2 : n3);
Tady,
- (n1> = n2) - první testovací podmínka, která kontroluje, zda je n1 větší než n2
- (n1> = n3) - druhá testovací podmínka, která se provede, pokud je první podmínka
true
- (n2> = n3) - třetí testovací podmínka, která se provede, pokud je první podmínka
false
Poznámka : Nedoporučuje se používat vnořené ternární operátory. Je to proto, že náš kód je složitější.