Ja. Mehrere Anweisungen müssen als Blockanweisung geschrieben werden.
yield
-Anweisung
Werden in einer case
-Anweisung rechts vom Pfeilsymbol mehrere Anweisungen benötigt, können diese als Blockanweisung in geschweifte Klammern gesetzt werden. In diesem Fall muss die letzte Anweisung yield
sein. Mit der yield
-Anweisung wird in unserem Beispiel das Ergebnis an die Variable meldung
übergeben und die switch
-Anweisung darauf beendet.
meldung = switch (farbe) { case 'r', 'R' -> {System.out.println("case 1"); yield meldung + " rot";} case 'o', 'O' -> {System.out.println("case 2"); yield meldung + " orange";} case 'g', 'G' -> {System.out.println("case 3"); yield meldung + " gelb";} case 'b', 'B' -> {System.out.println("case 4"); yield meldung + " blau";} case 'v', 'V' -> {System.out.println("case 5"); yield meldung + " violett";} default -> meldung + " unbekannt"; };
Das vollständige SwitcherNeu
Programm steht unten:
import java.util.Scanner; class SwitcherNeu { public static void main ( String[] args ) { char farbe = 'G' ; String meldung = "Die Farbe ist"; String userIn; Scanner scan = new Scanner( System.in ); System.out.print("Geben Sie einen Buchstaben fuer eine Farbe ein: "); userIn = scan.nextLine(); farbe = userIn.charAt( 0 ); // 1. Buchstaben holen meldung = switch (farbe) { case 'r', 'R' -> {System.out.println("case 1"); yield meldung + " rot";} case 'o', 'O' -> {System.out.println("case 2"); yield meldung + " orange";} case 'g', 'G' -> {System.out.println("case 3"); yield meldung + " gelb";} case 'b', 'B' -> {System.out.println("case 4"); yield meldung + " blau";} case 'v', 'V' -> {System.out.println("case 5"); yield meldung + " violett";} default -> meldung + " unbekannt"; }; System.out.println ( meldung ) ; } }
Kann die alte Syntax für switch
weiterhin verwendet werden?