Java 14: switch expressions (standard)
Podstawa: https://openjdk.java.net/jeps/361
JEP 361 ewoluował z https://openjdk.java.net/jeps/325 (Java 12) i https://openjdk.java.net/jeps/354″ (Java 13).
Pisaliśmy o tym we wpisach Java 12: Switch Expressions oraz Java 13: switch expressions (2).
Od Java 14 wyrażenia przełącznikowe (switch expressions) przechodzą do standardu języka Java.
Przypomnijmy zatem sposoby używania konstrukcji switch
.
Klasa SwitchExpr1
package switchexpr3; public class SwitchExpr1 { enum Dni {Pon, Wto, Sro, Czw, Pia, Sob, Nie}; public static void main(String[] args) { Dni dzien = Dni.Wto; switch (dzien) { case Pon: System.out.println(dzien.ordinal()); break; case Wto: System.out.println(dzien.ordinal()); break; case Sro: System.out.println(dzien.ordinal()); break; case Czw: System.out.println(dzien.ordinal()); break; case Pia: System.out.println(dzien.ordinal()); break; case Sob: System.out.println(dzien.ordinal()); break; case Nie: System.out.println(dzien.ordinal()); break; default: System.out.println("Nie ma takiego dnia"); } } }
Po uruchomieniu na konsoli zobaczymy:
1
Klasa SwitchExpr2
package switchexpr3; public class SwitchExpr2 { enum Dni {Pon, Wto, Sro, Czw, Pia, Sob, Nie}; public static void main(String[] args) { Dni dzien = Dni.Wto; switch (dzien) { case Pon -> System.out.println(dzien.ordinal()); case Wto -> System.out.println(dzien.ordinal()); case Sro -> System.out.println(dzien.ordinal()); case Czw -> System.out.println(dzien.ordinal()); case Pia -> System.out.println(dzien.ordinal()); case Sob -> System.out.println(dzien.ordinal()); case Nie -> System.out.println(dzien.ordinal()); default -> System.out.println("Nie ma takiego dnia"); } } }
Po uruchomieniu na konsoli zobaczymy:
1
Klasa SwitchExpr3
package switchexpr3; public class SwitchExpr3 { enum Dni {Pon, Wto, Sro, Czw, Pia, Sob, Nie}; public static void main(String[] args) { Dni dzien = Dni.Wto; switch (dzien) { case Pon, Wto, Sro, Czw, Pia -> System.out.println("Dzień roboczy"); case Sob, Nie -> System.out.println("Dzeń wolny od pracy"); default -> System.out.println("Nie ma takiego dnia"); } } }
Po uruchomieniu na konsoli zobaczymy:
Dzień roboczy
Klasa SwitchExpr4
package switchexpr3; public class SwitchExpr4 { enum Dni {Pon, Wto, Sro, Czw, Pia, Sob, Nie} ; public static void main(String[] args) { Dni dzien = Dni.Wto; int dayNum = -1; switch (dzien) { case Pon: dayNum = dzien.ordinal(); break; case Wto: dayNum = dzien.ordinal(); break; case Sro: dayNum = dzien.ordinal(); break; case Czw: dayNum = dzien.ordinal(); break; case Pia: dayNum = dzien.ordinal(); break; case Sob: dayNum = dzien.ordinal(); break; case Nie: dayNum = dzien.ordinal(); break; default: dayNum = 7; } System.out.println(dayNum); } }
Po uruchomieniu na konsoli zobaczymy:
1
Klasa SwitchExpr5
ackage switchexpr3; public class SwitchExpr5 { enum Dni {Pon, Wto, Sro, Czw, Pia, Sob, Nie} public static void main(String[] args) { Dni dzien = Dni.Nie; int dayNum = switch (dzien) { case Pon, Czw, Pia, Sob -> dzien.ordinal(); case Wto -> { yield dzien.ordinal(); } case Sro -> { yield 2; } case Nie -> { System.out.println("Dziś jest niedziela"); yield dzien.ordinal(); } }; System.out.println(dayNum); } }
Po uruchomieniu na konsoli zobaczymy:
Dziś jest niedziela 6
Klasa SwitchExpr6
package switchexpr3; public class SwitchExpr6 { enum Dni {Pon, Wto, Sro, Czw, Pia, Sob, Nie} public static void main(String[] args) { Dni dzien = Dni.Wto; String dayNum = switch (dzien) { case Pon, Wto, Sro, Czw, Pia -> "Dzień roboczy"; case Sob, Nie -> "Dzień wolny od pracy"; default -> "Nie ma takiego dnia"; }; System.out.println(dayNum); } }
Po uruchomieniu na konsoli zobaczymy:
Dzień roboczy
Klasa SwitchExpr7
package switchexpr3; import java.util.*; public class SwitchExpr7 { enum Dni {Pon, Wto, Sro, Czw, Pia, Sob, Nie} public static void main(String[] args) { Dni dzien = Dni.Nie; String dayNum = switch (dzien) { case Pon, Wto, Sro, Czw, Pia -> "Dzień roboczy"; case Sob -> "Sobota: dzień wolny od pracy"; case Nie -> { Random ran = new Random(); int dec = ran.nextInt(10); yield dec < 5 ? "Niedziela: Idziesz na spacer" : "Niedziela: możesz pograć w gry"; } }; System.out.println(dayNum); } }
Po uruchomieniu na konsoli zobaczymy:
Niedziela: możesz pograć w gry