V tej vadnici boste s pomočjo primerov spoznali ternarni operater in njegovo uporabo v Javi.
V Javi lahko ternarni operator v določenih situacijah nadomesti stavek if … else. Preden se seznanite s ternarnim operaterjem, obiščite izjavo Java if … else.
Ternarni operater v Javi
Ternarni operater oceni testno stanje in na podlagi rezultata pogoja izvede blok kode.
Sintaksa je:
condition ? expression1 : expression2;
Tu se stanje oceni in
- če je pogoj
true
, se izraz1 izvrši. - In če je pogoj
false
, se izraz2 izvrši.
Ternarni operator sprejme 3 operande (pogoj, izraz1 in izraz2). Zato ime trojni operater .
Primer: 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(); ) )
Izhod 1
Vpišite svoje ocene: 75 Opravite izpit.
Recimo, da uporabnik vnese 75 . Nato stanje marks> 40
oceni na true
. Zato je prvi prehod izraza dodeljen rezultatu.
Rezultat 2
Vpišite svoje ocene: 24 Ne izpit.
Recimo, da uporabnik vnese 24 . Nato stanje marks> 40
oceni na false
. Zato je drugi izraz neuspeh dodeljen rezultatu.
Kdaj uporabiti ternarnega operaterja?
V Javi lahko ternarni operator nadomestimo nekatere vrste if… else
stavkov. Na primer
To kodo lahko zamenjate
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); ) )
Izhod
Pozitivna številka
Tu imata oba programa enak izhod. Vendar uporaba ternarnega operaterja naredi našo kodo bolj berljivo in čisto.
Opomba : Ternarni operator uporabljajte samo, če je izpis kratek.
Vgnezdeni ternarni operaterji
Možno je uporabiti tudi enega ternarnega operaterja znotraj drugega ternarnega operaterja. V Javi se imenuje ugnezdeni ternarni operator.
Tukaj je program za iskanje največje od treh številk z uporabo ugnezdenega ternarnega operatorja.
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); ) )
Izhod
Največje število: 9
V zgornjem primeru opazite uporabo ternarnega operaterja,
(n1>= n2) ? ((n1>=n3) ? n1 : n3) : ((n2>= n3) ? n2 : n3);
Tukaj,
- (n1> = n2) - prvi preskusni pogoj, ki preveri, ali je n1 večji od n2
- (n1> = n3) - drugi preskusni pogoj, ki se izvede, če je prvi pogoj
true
- (n2> = n3) - tretji preskusni pogoj, ki se izvede, če je prvi pogoj
false
Opomba : Ni priporočljivo uporabljati ugnezdenih ternarnih operatorjev. To je zato, ker je naša koda bolj zapletena.