Op Java, voorwaardelijke operatoren controleer de voorwaarde en bepaalt op basis van beide voorwaarden het gewenste resultaat. In deze sectie bespreken we de voorwaardelijke operator in Java.
Soorten voorwaardelijke operatoren
Er zijn drie soorten voorwaardelijke operator in Java :
- Voorwaardelijke EN
- Voorwaardelijke OF
- Ternaire operator
Exploitant | Symbool |
---|---|
Voorwaardelijke of logische EN | && |
Voorwaardelijke of logische OF | || |
Ternaire operator | ?: |
Voorwaardelijke EN
De operator wordt toegepast tussen twee Booleaanse expressies. Het wordt aangegeven met de twee AND-operatoren (&&). Het retourneert waar als en slechts als beide expressies waar zijn, anders retourneert het onwaar.
Expressie1 | Expressie2 | Expressie1 && Expressie2 |
---|---|---|
WAAR | Vals | Vals |
Vals | WAAR | Vals |
Vals | Vals | Vals |
WAAR | WAAR | WAAR |
Voorwaardelijke OF
De operator wordt toegepast tussen twee Booleaanse expressies. Het wordt aangegeven met de twee OF-operator (||). Het retourneert waar als een van de expressies waar is, anders retourneert het onwaar.
Expressie1 | Expressie2 | Expressie1 || Expressie2 |
---|---|---|
WAAR | WAAR | WAAR |
WAAR | Vals | WAAR |
Vals | WAAR | WAAR |
Vals | Vals | Vals |
Laten we een Java-programma maken en de voorwaardelijke operator gebruiken.
ConditionalOperatorExample.java
public class ConditionalOperatorExample { public static void main(String args[]) y<z); system.out.println((xz) && x<y); } < pre> <p> <strong>Output</strong> </p> <pre> true false </pre> <h3>Ternary Operator</h3> <p>The meaning of <strong>ternary</strong> is composed of three parts. The <strong>ternary operator (? :)</strong> consists of three operands. It is used to evaluate Boolean expressions. The operator decides which value will be assigned to the variable. It is the only conditional operator that accepts three operands. It can be used instead of the if-else statement. It makes the code much more easy, readable, and shorter.</p> <h4>Note: Every code using an if-else statement cannot be replaced with a ternary operator.</h4> <p> <strong>Syntax:</strong> </p> <pre> variable = (condition) ? expression1 : expression2 </pre> <p>The above statement states that if the condition returns <strong>true, expression1</strong> gets executed, else the <strong>expression2</strong> gets executed and the final result stored in a variable.</p> <img src="//techcodeview.com/img/java-tutorial/89/conditional-operator-java.webp" alt="Conditional Operator in Java"> <p>Let's understand the ternary operator through the flowchart.</p> <img src="//techcodeview.com/img/java-tutorial/89/conditional-operator-java-2.webp" alt="Conditional Operator in Java"> <p> <strong>TernaryOperatorExample.java</strong> </p> <pre> public class TernaryOperatorExample { public static void main(String args[]) { int x, y; x = 20; y = (x == 1) ? 61: 90; System.out.println('Value of y is: ' + y); y = (x == 20) ? 61: 90; System.out.println('Value of y is: ' + y); } } </pre> <p> <strong>Output</strong> </p> <pre> Value of y is: 90 Value of y is: 61 </pre> <p>Let's see another example that evaluates the largest of three numbers using the ternary operator.</p> <p> <strong>LargestNumberExample.java</strong> </p> <pre> public class LargestNumberExample { public static void main(String args[]) { int x=69; int y=89; int z=79; int largestNumber= (x > y) ? (x > z ? x : z) : (y > z ? y : z); System.out.println('The largest numbers is: '+largestNumber); } } </pre> <p> <strong>Output</strong> </p> <pre> The largest number is: 89 </pre> <p>In the above program, we have taken three variables x, y, and z having the values 69, 89, and 79, respectively. The expression <strong>(x > y) ? (x > z ? x : z) : (y > z ? y : z)</strong> evaluates the largest number among three numbers and store the final result in the variable largestNumber. Let's understand the execution order of the expression.</p> <img src="//techcodeview.com/img/java-tutorial/89/conditional-operator-java-3.webp" alt="Conditional Operator in Java"> <p>First, it checks the expression <strong>(x > y)</strong> . If it returns true the expression <strong>(x > z ? x : z)</strong> gets executed, else the expression <strong>(y > z ? y : z)</strong> gets executed.</p> <p>When the expression <strong>(x > z ? x : z)</strong> gets executed, it further checks the condition <strong>x > z</strong> . If the condition returns true the value of x is returned, else the value of z is returned.</p> <p>When the expression <strong>(y > z ? y : z)</strong> gets executed it further checks the condition <strong>y > z</strong> . If the condition returns true the value of y is returned, else the value of z is returned.</p> <p>Therefore, we get the largest of three numbers using the ternary operator.</p> <hr></z);>
Ternaire operator
De betekenis van ternair bestaat uit drie delen. De ternaire operator (? :) bestaat uit drie operanden. Het wordt gebruikt om Booleaanse expressies te evalueren. De operator beslist welke waarde aan de variabele wordt toegekend. Het is de enige voorwaardelijke operator die drie operanden accepteert. Het kan worden gebruikt in plaats van de if-else-instructie. Het maakt de code veel gemakkelijker, leesbaarder en korter.
Opmerking: elke code die een if-else-instructie gebruikt, kan niet worden vervangen door een ternaire operator.
Syntaxis:
variable = (condition) ? expression1 : expression2
In de bovenstaande verklaring staat dat als de aandoening terugkeert waar, expressie1 wordt geëxecuteerd, anders wordt de expressie2 wordt uitgevoerd en het eindresultaat wordt opgeslagen in een variabele.
Laten we de ternaire operator begrijpen via het stroomdiagram.
TernaryOperatorExample.java
public class TernaryOperatorExample { public static void main(String args[]) { int x, y; x = 20; y = (x == 1) ? 61: 90; System.out.println('Value of y is: ' + y); y = (x == 20) ? 61: 90; System.out.println('Value of y is: ' + y); } }
Uitvoer
Value of y is: 90 Value of y is: 61
Laten we nog een voorbeeld bekijken waarin de grootste van drie getallen wordt geëvalueerd met behulp van de ternaire operator.
GrootsteNummerVoorbeeld.java
public class LargestNumberExample { public static void main(String args[]) { int x=69; int y=89; int z=79; int largestNumber= (x > y) ? (x > z ? x : z) : (y > z ? y : z); System.out.println('The largest numbers is: '+largestNumber); } }
Uitvoer
The largest number is: 89
In het bovenstaande programma hebben we drie variabelen x, y en z genomen met respectievelijk de waarden 69, 89 en 79. De uitdrukking (x > y) ? (x > z ? X : z) : (y > z ? y : z) evalueert het grootste getal uit drie getallen en slaat het eindresultaat op in de variabele grootsteGetal. Laten we de uitvoeringsvolgorde van de expressie begrijpen.
Eerst wordt de expressie gecontroleerd (x > y) . Als het de expressie waar retourneert (x > z? X: z) wordt uitgevoerd, anders wordt de expressie (y > z? y : z) wordt geëxecuteerd.
Wanneer de uitdrukking (x > z? X: z) wordt uitgevoerd, wordt de voorwaarde verder gecontroleerd x > z . Als de voorwaarde waar retourneert, wordt de waarde van x geretourneerd, anders wordt de waarde van z geretourneerd.
Wanneer de uitdrukking (y > z? y : z) wordt uitgevoerd, wordt de voorwaarde verder gecontroleerd y > z . Als de voorwaarde waar retourneert, wordt de waarde van y geretourneerd, anders wordt de waarde van z geretourneerd.
Daarom krijgen we de grootste van drie getallen met behulp van de ternaire operator.