Klasyczna instrukcja switch
Klasyczna instrukcja switch
jest skonstruowana następująco:
switch(expression){ case XXX: //coś break; ... default: //coś 1 }
switch
jest słowem kluczowym.
expression
musi:
- – być typu prostego (
byte
,short
,char
,int
) albo - – być typu obiektowego (
Byte
,Short
,Character
,Integer
,String
) albo - – być elementem wyliczenia
enum
Klamry {}
obejmują blok instrukcji switch
.
case
i default
są etykietami instrukcji switch
. Inne etykiety są niedozwolone.
Etykieta default
może wystąpić 0 albo 1 raz.
Etykieta case
może wystąpić 0 lub więcej razy.
XXX
jest nazwą stałej podanego typu lub nazwą stałej wyliczeniowej. Wszystkie XXX
muszą być tego samego typu wyliczeniowego albo kompatybilne przypisaniowo. Żadne dwa XXX
nie mogą być sobie równe. XXX
typu obiektowego nie może być null
.
//coś
– to instrukcje do wykonania jeśli zajdzie przypadek opisany przez XXX
. //coś
może obejmować wiele linii kodu.
Instrukcja switch
jest wykonywana kolejno. Jeśli XXX
będzie równe wyrażeniu
zostanie wykonane //coś
.
Słowo break
przerywa wykonywanie instrukcji switch
.
Jeżeli żadne XXX
nie jest równe wyrażeniu
– wykonywane jest default
czyli //coś 1
Po default
nie używa się break
choć jest to dopuszczalne. Jeśli default
nie występuje break
po ostatnim case
nie musi występować, choć jest to zalecane.
Instrukcje w obrębie case
są wykonywane do słowa break
. Jeżeli break
nie występuje – kody z kolejnych case
są wykonywane aż do pierwszego break
.
Klasy
- Klasa
SwitchClassic1
– użycieint
SwitchClassic1
– użycieenum
- Klasa
SwitchClassic1
– użycieString
- Klasa
SwitchClassic1
– pominięciebreak
SwitchClassic1
package switchexp; public class SwitchClassic1 { public static void main(String[] args){ String[] dni ={"Pon", "Wto", "Sro", "Czw", "Pia", "Sob", "Nie"}; int dzien = 0; switch(dzien){ case 0: System.out.println(dni[dzien]); break; case 1: System.out.println(dni[dzien]); break; case 2: System.out.println(dni[dzien]); break; case 3: System.out.println(dni[dzien]); break; case 4: System.out.println(dni[dzien]); break; case 5: System.out.println(dni[dzien]); break; case 6: System.out.println(dni[dzien]); break; default: System.out.println("Nie ma takiego dnia"); } } }
SwitchClassic2
package switchexp; public class SwitchClassic2 { enum Dni{Pon, Wto, Sro, Czw, Pia, Sob, Nie}; public static void main(String[] args){ Dni dzien = Dni.Pon; switch(dzien){ case Pon: System.out.println(dzien); break; case Wto: System.out.println(dzien); break; case Sro: System.out.println(dzien); break; case Czw: System.out.println(dzien); break; case Pia: System.out.println(dzien); break; case Sob: System.out.println(dzien); break; case Nie: System.out.println(dzien); break; default: System.out.println("Nie ma takiego dnia"); } } }
SwitchClassic3
package switchexp; public class SwitchClassic3 { public static void main(String[] args){ String dzien = "Pon"; switch(dzien){ case "Pon": System.out.println(dzien); break; case "Wto": System.out.println(dzien); break; case "Sro": System.out.println(dzien); break; case "Czw": System.out.println(dzien); break; case "Pia": System.out.println(dzien); break; case "Sob": System.out.println(dzien); break; case "Nie": System.out.println(dzien); break; default: System.out.println("Nie ma takiego dnia"); } } }
SwitchClassic4
package switchexp; public class SwitchClassic4 { public static void main(String[] args){ int dzien = 0; switch(dzien){ case 0: System.out.println("Pon"); case 1: System.out.println("Wto"); case 2: System.out.println("Sro"); break; case 3: System.out.println("Czw"); break; case 4: System.out.println("Pia"); break; case 5: System.out.println("Sob"); break; case 6: System.out.println("Nie"); break; default: System.out.println("Nie ma takiego dnia"); } } }