Centrum wiedzy o technologiach i pracy w IT
java switch

Zwiększ czytelność kodu poprzez switch w Javie

Ostatnia aktualizacja 11 października, 2023

Java switch to jeden z podstawowych elementów, który pozwala na wykonywanie różnych bloków kodu w zależności od wartości zmiennej. Instrukcja sterująca switch jest szczególnie użyteczna w przypadkach, gdy potrzebujemy porównać jedną zmienną z wieloma wartościami. W tym artykule przyjrzymy się, jak działa instrukcja switch w Javie, jakie są jej zalety i ograniczenia, a także jak można ją efektywnie wykorzystać w praktyce.

Nie udało się zapisać Twojej subskrypcji. Spróbuj ponownie.
Udało się! Widzimy się niebawem – newsletter wysyłamy w każdy wtorek

Otrzymuj za darmo unikalne poradniki, dane i wiedzę o pracy w IT – dostarczane co tydzień

Klikając “Zapisz mnie” wyrażasz zgodę na otrzymywanie e-maili od redakcji, a także ofert partnerów oraz akceptujesz naszą Politykę prywatności.

Podstawy instrukcji Java switch

Instrukcja switch w Javie służy do wykonania różnych bloków kodu na podstawie wartości jednej zmiennej. Jest to alternatywa dla zagnieżdżonych instrukcji if-else.

int day = 3;
switch (day) {
    case 1:
        System.out.println("Poniedziałek");
        break;
    case 2:
        System.out.println("Wtorek");
        break;
    case 3:
        System.out.println("Środa");
        break;
    default:
        System.out.println("Nieznany dzień");
}

W tym przypadku zmienna, którą będziemy analizować, to day, a jej wartość początkowa to 3.

  • int day = 3;: Tutaj deklarujemy zmienną typu int o nazwie day i przypisujemy jej wartość 3.
  • switch (day) { ... }: Instrukcja switch rozpoczyna się od słowa kluczowego switch, po którym w nawiasach podajemy zmienną, którą chcemy analizować. W tym przypadku jest to zmienna day.
  • case 1:: To jest pierwszy przypadek (case), który zostanie wykonany, jeżeli wartość zmiennej day wynosi 1.
    • System.out.println("Poniedziałek");: Jeżeli wartość day wynosi 1, ta linia kodu zostanie wykonana, a program wyświetli “Poniedziałek”.
    • break;: Słowo kluczowe break kończy blok kodu dla tego przypadku i wychodzi z instrukcji switch.
  • case 2: i case 3:: Są to kolejne przypadki, które działają analogicznie do pierwszego przypadku. Jeżeli wartość day wynosi 2, wyświetlony zostanie “Wtorek”, a jeżeli 3, to “Środa”.
  • default:: Jest to domyślny przypadek, który zostanie wykonany, jeżeli żaden z wcześniejszych przypadków nie pasuje do wartości zmiennej day.
    • System.out.println("Nieznany dzień");: Jeżeli żaden z przypadków nie pasuje, program wyświetli “Nieznany dzień”.

W tym konkretnym przypadku, ponieważ wartość zmiennej day wynosi 3, program przejdzie do bloku kodu pod case 3: i wyświetli “Środa”, a następnie zakończy działanie instrukcji switch słowem kluczowym break.

Zalety i ograniczenia instrukcji switch

Zalety

  • Czytelność kodu: Instrukcja Java switch jest bardziej czytelna niż zagnieżdżone instrukcje if-else.
  • Wydajność: W niektórych przypadkach może być szybsza niż zagnieżdżone instrukcje if-else.
  • Uporządkowanie: Ułatwia grupowanie wielu przypadków. Pozwala to na bardziej uporządkowany i zorganizowany kod.
  • Łatwość modyfikacji: Dodawanie lub usuwanie przypadków jest stosunkowo proste i nie wymaga dużej ilości zmian w kodzie.
  • Wsparcie dla różnych typów danych: Można używać różnych typów danych, m.in. int, char, String, enum, co zwiększa jej wszechstronność.

Ograniczenia

  1. Tylko jedna zmienna: Można porównać tylko jedną zmienną z różnymi wartościami.
  2. Ograniczone typy danych: Można użyć tylko pewnych typów danych, m.in. int, char, String, itd.
  3. Brak złożonych warunków: Nie można używać złożonych warunków logicznych wewnątrz instrukcji switch. Każdy przypadek musi być jednoznaczny.
  4. Brak zakresu wartości: Nie można definiować zakresu wartości dla jednego przypadku. Każdy przypadek musi odpowiadać konkretnej, pojedynczej wartości.
  5. Ryzyko zapomnienia o break: Jeżeli zapomnisz dodać słowo kluczowe break, przypadki będą się “przelewać” (ang. fall-through), co może prowadzić do nieoczekiwanych wyników.

Dalsza część tekstu znajduje się pod materiałem wideo:

Java Switch – użycie z różnymi typami danych

Instrukcja switch w Javie obsługuje różne typy danych. Przykład z użyciem String prezentuje się następująco:

String fruit = "Apple";
switch (fruit) {
    case "Apple":
        System.out.println("To jest jabłko.");
        break;
    case "Banana":
        System.out.println("To jest banan.");
        break;
    default:
        System.out.println("To jest inny owoc.");
}

Co się dzieje w powyższym kodzie?

  • String fruit = "Apple";: Tutaj deklarujemy zmienną typu String o nazwie fruit i przypisujemy jej wartość “Apple”.
  • switch (fruit) { ... }: Instrukcja switch rozpoczyna się od słowa kluczowego switch, po którym w nawiasach podajemy zmienną do analizy. W tym przypadku jest to zmienna fruit.
  • case "Apple":: To jest pierwszy przypadek (case), który zostanie wykonany, jeżeli wartość zmiennej fruit to “Apple”.
    • System.out.println("To jest jabłko.");: Jeżeli wartość fruit to “Apple”, ta linia kodu zostanie wykonana, a program wyświetli “To jest jabłko.”
    • break;: Słowo kluczowe break kończy blok kodu dla tego przypadku i wychodzi z instrukcji switch.
  • case "Banana":: Jest to drugi przypadek, który wykona się, jeżeli wartość zmiennej fruit to “Banana”. W tym przypadku program wyświetli “To jest banan.”
  • default:: Jest to domyślny przypadek, który zostanie wykonany, jeżeli żaden z wcześniejszych przypadków nie pasuje do wartości zmiennej fruit.
    • System.out.println("To jest inny owoc.");: Jeżeli żaden z przypadków nie pasuje, program wyświetli “To jest inny owoc.”

Ponieważ wartość zmiennej fruit to “Apple”, program przejdzie do bloku kodu pod case "Apple": i wyświetli “To jest jabłko.”, a następnie zakończy działanie instrukcji switch dzięki słowu kluczowemu break.

Czytaj także:

Java enum – wprowadzenie do typów wyliczeniowych

Ciąg Fibonacciego w Javie

Polimorfizm pozwala ograniczyć złożoność kodu

Zarobki Java Developera wynoszą nawet 19 tys. zł brutto

Poznaj najczęstsze trudności początkującego programisty Java

Total
0
Shares
_podobne artykuły