Autor: 13.12.2023
Java - instrukcja Switch Case
W tym artykule opiszemy instrukcję Switch Case, która w niektórych sytuacjach jest alternatywną dla zagnieżdżonych instrukcji warunkowych IF. Zaczynamy!
Najprostszy przykład Switch
W zależności od zaistniałej sytuacji możesz “przełączyć” (switch) wykonanie kodu. Spójrzmy na konkretny przykład:
int number = 1;
switch(number) {
case 1:
System.out.println("jeden");
}
Instrukcja switch próbuje dopasować wartość number do warunku case. Jeżeli będzie w stanie dopasować wartość wówczas zostanie wyprowadzony napis jeden. W naszym przypadku dokładnie tak się stanie. W przeciwnym wypadku blok switch zostanie pominięty. Oczywiście taki kod jest mało przydatny - obsługujemy tylko jedną sytuację.
Rozwińmy nasz przykład
Wariantów case może być wiele. Przykład został zaprezentowany poniżej:
int number = 1;
switch(number) {
case 1:
System.out.println("jeden");
case 2:
System.out.println("dwa");
}
Wybierając wariant 1 na wyjściu wyprowadzone zostaną napisy:
jeden
dwa
Jeżeli zmienna number będzie posiadała wartość 2 wówczas wyprowadzony zostanie napis:
dwa
Jak sprawić aby dla number=1 wykonać tylko instrukcje znajdujące się jedynie w case 1? Z pomocą przyjdzie nam break. Oto zastosowanie:
int number = 1;
switch(number) {
case 1:
System.out.println("jeden");
break;
case 2:
System.out.println("dwa");
break;
}
Instrukcja break pozwoli nam przerwać działanie dalszego przetwarzania switch. W naszym przypadku wykona się jedynie wariant 1.
Dodajmy obsługę przypadku domyślnego
Etykieta default przyda Ci się w sytuacji gdy wystąpi problem z dopasowaniem warunku w switch case. Jeżeli wariant nie zostanie dopasowany wówczas wywoła się kod w etykiecie default. Oto przykład:
int number = 2;
switch(number) {
case 0:
System.out.print("zero ");
case 1:
System.out.print("jeden ");
break;
default:
System.out.println("default");
break;
}
Na wyjściu dostaniemy:
default
Czyli mamy już omówione podstawowe techniki pracy z instrukcją Switch Case.
Różne dane wejściowe
Warto na koniec wspomnieć o tym, że instrukcja Switch może przyjąć różne dane wejściowe. Dotychczas sprawdzaliśmy liczby, ale możesz używać danych innego typu. Popatrz na poniższą tabelkę.
Typ | Przykład |
char (Character) |
|
Enum |
|
String |
|
W praktyce często używamy takiej instrukcji w połączeniu z danymi typu Enum (tzw. typ wyliczeniowy).