Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ternäärinen Operaattori | Syvällinen Java-rakenne
Java Laajennettu

Pyyhkäise näyttääksesi valikon

book
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

Main.java

copy
12345678
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

Main.java

copy
12345678910
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

Main.java

copy
1234567891011121314151617181920
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.

Tehtävä

Swipe to start coding

  1. Kirjoita koodi, joka tulostaa "The string contains Florida", jos merkkijono sisältää sanan Florida, tai "Florida is not found", jos se ei sisällä.

  2. Harjoittele ehdollisen (ternäärisen) operaattorin käyttöä.

Ratkaisu

solution.java

solution.java

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 6
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

Awesome!

Completion rate improved to 2.63

book
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

Main.java

copy
12345678
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

Main.java

copy
12345678910
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

Main.java

copy
1234567891011121314151617181920
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.

Tehtävä

Swipe to start coding

  1. Kirjoita koodi, joka tulostaa "The string contains Florida", jos merkkijono sisältää sanan Florida, tai "Florida is not found", jos se ei sisällä.

  2. Harjoittele ehdollisen (ternäärisen) operaattorin käyttöä.

Ratkaisu

solution.java

solution.java

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

close

Awesome!

Completion rate improved to 2.63

Pyyhkäise näyttääksesi valikon

some-alt