naukaJavy.pl

  • Zwiększ rozmiar czcionki
  • Domyślny  rozmiar czcionki
  • Zmniejsz rozmiar czcionki
Home Kurs języka Java

Instrukcja wyboru SWITCH

Email Drukuj

Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w pewnym sensie rozszerzenie instrukcji warunkowej IF. Ogólna składnia instrukcji SWITCH jest następująca:

switch ({wyrażenie wyboru}) {
case {wartość wyboru}:
{ciąg instrukcji dla danego wariantu}

case {inna wartość wyboru}:
{ciąg instrukcji dla danego wariantu}

default:
{ciąg instrukcji dla wariantu domyślnego}
}

W instrukcji SWITCH – inaczej niż w instrukcji IF – nie określamy warunku, który musi być prawdziwy, aby ujęty w instrukcji kod się wykonał. Tutaj określamy {wyrażenie wyboru}, którego wartością jest liczba całkowita i definiujemy warianty, które mają się wykonać w zależności od tego, jaka jest wartość tego wyrażenia. Warianty oznaczamy słówkiem kluczowym case, za którym umieszczamy wartość dla której kod z tego wariantu ma być uruchomiony.

Dodatkowo, instrukcja SWITCH umożliwia określenie wariantu domyślnego, który to wariant oznaczamy słówkiem kluczowym default. Wariant ten wykonywany jest, jeśli dla danej wartości {wyrażenia wyboru} nie określono wariantu typu case.

W poniższym przykładzie implementujemy z użyciem instrukcji SWITCH funkcję, która określa parzystość liczy przekazanej jako parametr wywołania:

public void oddOrEven(int x) {
switch (x % 2) {
case 0:
System.out.println(x + " jest liczbą parzystą");
break;

case 1:
System.out.println(x + " jest liczbą nieparzystą");
break;

default:
System.out.println("nieprzewidziana sytuacja");
}
}

Co ważne, wariant jest tylko punktem początkowym i kod będzie się wykonywał przechodząc kaskadowo przez kolejne warianty, aż do końca instrukcji SWITCH, chyba że wykonanie to przerwiemy za pomocą instrukcji break, tak jak to robimy w powyższym przykładzie. Instrukcja SWITCH działa w ten sposób, że w pierwszej kolejności wyliczana jest wartość wyrażenia wyboru, a następnie wykonywany jest skok do wariantu oznaczonego tą wartością.

Operator % (tj. operator reszty z dzielenia) zaimplementowany w Javie może zwracać wartości ujemne, stąd wyrażenie x % 2 oprócz wartości 1 i 0 może zwrócić także wartość -1. Stanie się tak dla każdej ujemnej liczby nieparzystej. Powyższy program nie rozpozna prawidłowo takiej sytuacji i wyświetli komunikat „nieprzewidziana sytuacja”. Poprawmy go więc w następujący sposób:

public void oddOrEven(int x) {
switch (x % 2) {
case 0:
System.out.println(x + " jest liczbą parzystą");
break;

case -1: // dodano wariant dla wartości -1
case 1:
System.out.println(x + " jest liczbą nieparzystą");
break;

default:
System.out.println("nieprzewidziana sytuacja");
}
}

Wariant z wartością -1 nie zawiera żadnych instrukcji, ale ponieważ nie zawiera też instrukcji break, zatem wykonany będzie dla tej wartości kod z wariantu znajdującego się poniżej, tj. dla wariantu z wartością 1. W ten sposób uruchamiamy de facto ten sam kod dla wartości -1 i 1. Nasza funkcja jest już w pełni poprawna, tj. prawidłowo rozpoznaje także nieujemne liczby nieparzyste. Wariant oznaczony etykietą default nie zostanie już zatem nigdy uruchomiony, ale możemy go pozostawić na wszelki wypadek.

 

Reklama

Wiadomości

Oracle złożył pozew sądowy przeciwko firmie Google, oskarżając o naruszenie patentów i praw autorskich dotyczących platformy Java.

Kością niezgody jest platforma Google Android a zwłaszcza Wirtualna Maszyna Dalvik, zaimplementowana w oparciu o Wirtualną Maszynę Javy, ale niezgodna ze standardem Java SE czy Java ME.

Co to jest

Apache Lucene Java to biblioteka open-source napisana w języku Java. Lucene służy do implementacji mechanizmów wyszukiwania pełnotekstowego – taki mały Google, który możemy mieć we własnej aplikacji.


© Wszelkie prawa zastrzeżone dla Mariusza Lipińskiego

kontakt: mariusz.lipinski@naukajavy.pl | strona domowa: www.mariuszlipinski.pl