
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
