Ternær Operator
Hvordan kan vi forkorte en if-else-sætning?
if
-sætningen ser ikke altid elegant ud, men Java tilbyder en hurtigere og mere bekvem måde at kontrollere betingelser på. Den kaldes ternær operator, og den har følgende syntaks:
condition ? expression_for_true : expression_for_false
Først angiver vi en betingelse, for eksempel 10 > 5
, og derefter sætter vi et spørgsmålstegn ?
efter den. Hvis betingelsen evalueres til true
, går vi til sandt-blokken, for eksempel System.out.println("That's true");
. Hvis betingelsen evalueres til false
, går vi til falsk-blokken, hvor vi kunne have noget som System.out.println("That's not true");
.
Lad os analysere et mere 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 måske bemærket, at vi brugte det ternære operator inde i System.out.println();
-sætningen. Det er hovedformålet med at bruge det ternære operator – du kan anvende det i output-sætninger for markant at reducere mængden af kode.
Vi kan også bruge det ternære operator ved initialisering eller returnering af værdier. Du vil lære mere om returnering af værdier i næste afsnit, når du skal studere metoder.
Eksempel på brug af det ternære operator ved initialisering af en værdi:
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 ses et eksempel på kode, hvor det ternære operator er erstattet med en almindelig if
-sætning for at hjælpe dig med bedre at forstå, hvordan det 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 meget plads vi sparer ved at bruge ternary-operatoren.
Swipe to start coding
-
Skriv en kode, der udskriver
"The string contains Florida"
, hvis strengen indeholder ordet Florida, eller"Florida is not found"
, hvis den ikke gør. -
Brug den ternære operator for at øve dig med den.
Løsning
solution.java
Tak for dine kommentarer!