Ternær Operator
Hvordan kan vi forkorte en if-else-setning?
if
-setningen ser ikke alltid elegant ut, men Java tilbyr en raskere og mer praktisk måte å sjekke betingelser på. Dette kalles ternær operator, og har følgende syntaks:
condition ? expression_for_true : expression_for_false
Først setter vi en betingelse, for eksempel 10 > 5
, og deretter setter vi et spørsmålstegn ?
etter den. Hvis betingelsen evalueres til true
, går vi til sann-blokken, for eksempel System.out.println("That's true");
. Hvis betingelsen evalueres til false
, går vi til usann-blokken, hvor vi kan ha noe som System.out.println("That's not true");
.
La oss analysere et mer praktisk eksempel:
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"); } }
Du har kanskje lagt merke til at vi brukte den ternære operatoren inne i System.out.println();
-setningen. Dette er hovedformålet med å bruke den ternære operatoren – du kan bruke den i utskriftssetninger for å redusere mengden kode betydelig.
Vi kan også bruke den ternære operatoren når vi initialiserer eller returnerer verdier. Du vil lære mer om å returnere verdier i neste seksjon når du skal studere metoder.
Eksempel på bruk av ternær operator ved initialisering av verdi:
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); } }
Nedenfor er et eksempel på kode der den ternære operatoren er erstattet med en vanlig if
-setning for å hjelpe deg å forstå hvordan den fungerer:
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); } }
Resultatet er det samme, men du kan se hvor mye plass vi sparer ved å bruke ternær operator.
Swipe to start coding
-
Skriv en kode som skriver ut
"The string contains Florida"
hvis strengen inneholder ordet Florida, eller"Florida is not found"
hvis den ikke gjør det. -
Bruk den ternære operatoren for å øve på denne.
Løsning
solution.java
Takk for tilbakemeldingene dine!