Ternäärinen Operaattori
Kuinka voimme lyhentää if-else-lauseen?
if
-lause ei aina näytä tyylikkäältä, mutta Java tarjoaa nopeamman ja kätevämmän tavan tarkistaa ehtoja. Tätä kutsutaan ternääriseksi operaattoriksi, ja sen syntaksi on seuraava:
condition ? expression_for_true : expression_for_false
Ensin asetetaan ehto, esimerkiksi 10 > 5
, ja sen jälkeen lisätään kysymysmerkki ?
. Jos ehto arvioituu true
, siirrytään tosi-lohkoon, esimerkiksi System.out.println("That's true");
. Jos ehto arvioituu false
, siirrytään epätosi-lohkoon, jossa voi olla esimerkiksi System.out.println("That's not true");
.
Tarkastellaan käytännöllisempää esimerkkiä:
Main.java
package com.example; public class Main { public static void main(String[] args) { System.out.println(10 > 5 ? "That's true" : "That's false"); System.out.println(5 > 6 ? "That's true" : "That's false"); } }
Olet ehkä huomannut, että käytimme ternäärioperaattoria System.out.println();
-lauseessa. Tämä on ternäärioperaattorin päätarkoitus – sitä voidaan käyttää tulostuslauseissa koodin määrän vähentämiseksi merkittävästi.
Ternäärioperaattoria voidaan käyttää myös arvojen alustamiseen tai palauttamiseen. Opit lisää arvojen palauttamisesta seuraavassa osiossa, kun käsittelet metodeja.
Esimerkki ternäärioperaattorin käytöstä arvon alustamisessa:
Main.java
package com.example; public class Main { public static void main(String[] args) { final int a = 10 > 2 ? 5 : 2; final int b = 10 < 2 ? 5 : 2; System.out.println("Variable 'a' has value: " + a); System.out.println("Variable 'b' has value: " + b); } }
Alla on esimerkkikoodi, jossa ternäärioperaattori on korvattu tavallisella if
-lauseella, jotta ymmärrät paremmin sen toimintaa:
Main.java
package com.example; public class Main { public static void main(String[] args) { int a = 0; int b = 0; if (10 > 2) { a = 5; } else { a = 2; } if (10 < 2) { b = 5; } else { b = 2; } System.out.println("Variable 'a' has value: " + a); System.out.println("Variable 'b' has value: " + b); } }
Tulos on sama, mutta näet kuinka paljon tilaa säästämme käyttämällä ternääristä operaattoria.
Swipe to start coding
-
Kirjoita koodi, joka tulostaa
"The string contains Florida"
, jos merkkijono sisältää sanan Florida, tai"Florida is not found"
, jos se ei sisällä. -
Harjoittele ehdollisen (ternäärisen) operaattorin käyttöä.
Ratkaisu
solution.java
Kiitos palautteestasi!