single
Ternäärinen Operaattori
Pyyhkäise näyttääksesi valikon
Kuinka lyhentää if-else-lause Java-kielessä
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
12345678package 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ääasiallinen käyttö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
12345678910package 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, miten se toimii:
Main.java
1234567891011121314151617181920package 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 ei sisällä. -
Harjoittele ehdollisen (ternary) operaattorin käyttöä.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme