I denna handledning lär du dig om den ternära operatören och dess användning i Java med hjälp av exempel.
I Java kan en ternär operatör användas för att ersätta if … else-uttalandet i vissa situationer. Innan du lär dig om den ternära operatören, se till att du besöker Java if … else uttalande.
Ternary Operator i Java
En ternär operatör utvärderar testvillkoret och utför ett kodblock baserat på resultatet av tillståndet.
Det är syntax är:
condition ? expression1 : expression2;
Här utvärderas tillståndet och
- om villkor
true
är exekveras expression1. - Och om villkor är
false
, exekveras expression2.
Den ternära operatören tar tre operander (villkor, expression1 och expression2). Därför namnet ternär operatör .
Exempel: 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(); ) )
Utgång 1
Ange dina betyg: 75 Du klarar provet.
Antag att användaren anger 75 . Därefter marks> 40
utvärderas tillståndet till true
. Därför tilldelas det första uttryckspasset resultatet.
Utgång 2
Ange dina betyg: 24 Du klarar inte provet.
Antag nu att användaren anger 24 . Därefter marks> 40
utvärderas tillståndet till false
. Följaktligen tilldelas resultatet det andra uttrycket misslyckas.
När ska jag använda Ternary Operator?
I Java kan den ternära operatören användas för att ersätta vissa typer av if… else
uttalanden. Till exempel,
Du kan ersätta den här koden
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"); ) ) )
med
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); ) )
Produktion
Positivt nummer
Här ger båda programmen samma resultat. Användningen av den ternära operatören gör dock vår kod mer läsbar och ren.
Obs! Du bör endast använda den ternära operatören om det resulterande uttalandet är kort.
Kapslade ternära operatörer
Det är också möjligt att använda en ternär operatör i en annan ternär operatör. Det kallas den kapslade ternära operatören i Java.
Här är ett program för att hitta det största av tre nummer med den kapslade ternära operatören.
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); ) )
Produktion
Största antalet: 9
I exemplet ovan märker du användningen av den ternära operatören,
(n1>= n2) ? ((n1>=n3) ? n1 : n3) : ((n2>= n3) ? n2 : n3);
Här,
- (n1> = n2) - första testvillkor som kontrollerar om n1 är större än n2
- (n1> = n3) - andra testvillkor som körs om det första villkoret är
true
- (n2> = n3) - tredje testvillkor som körs om det första villkoret är
false
Obs! Det rekommenderas inte att använda kapslade ternära operatörer. Detta beror på att det gör vår kod mer komplex.