Ternär Operator
Hur kan vi förkorta en if-else-sats?
if
-satsen ser inte alltid elegant ut, men Java erbjuder ett snabbare och mer bekvämt sätt att kontrollera villkor. Det kallas ternär operator och har följande syntax:
condition ? expression_for_true : expression_for_false
Först anger vi ett villkor, till exempel 10 > 5
, och sedan sätter vi ett frågetecken ?
efter det. Om villkoret utvärderas till true
går vi till sant-blocket, till exempel System.out.println("That's true");
. Om villkoret utvärderas till false
går vi till falskt-blocket, där vi kan ha något som System.out.println("That's not true");
.
Låt oss analysera ett mer praktiskt exempel:
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 kanske har lagt märke till att vi använde den ternära operatorn inuti System.out.println();
-satsen. Det är huvudsyftet med att använda den ternära operatorn – du kan använda den i utskriftssatser för att avsevärt minska mängden kod.
Vi kan också använda den ternära operatorn vid initiering eller returnering av värden. Du kommer att lära dig mer om att returnera värden i nästa avsnitt när du studerar metoder.
Exempel på användning av ternär operator vid initiering av värde:
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); } }
Nedan finns ett exempel på kod där den ternära operatorn har ersatts med en vanlig if
-sats för att hjälpa dig att bättre förstå hur den fungerar:
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 är detsamma, men du kan se hur mycket utrymme vi sparar genom att använda ternära operatorn.
Swipe to start coding
-
Skriv en kod som skriver ut
"The string contains Florida"
om strängen innehåller ordet Florida, eller"Florida is not found"
om den inte gör det. -
Använd den ternära operatorn för att öva på den.
Lösning
solution.java
Tack för dina kommentarer!