Switch w C++

W tej lekcji nauczysz się, jak korzystać z instrukcji switch w języku C++. Instrukcja switch jest używana do sprawdzania wartości zmiennej i wykonywania różnych bloków kodu w zależności od tej wartości. Jest to szczególnie przydatne, gdy chcesz sprawdzić wiele możliwych przypadków dla jednej zmiennej. Użycie switch pozwala uprościć kod, gdy w przeciwnym razie trzeba by było użyć wielu instrukcji if...else.

Składnia switch opiera się na kilku słowach kluczowych: switch, case, break i default. Omówimy je dokładniej w poniższym przykładzie.

Przykład kodu – Użycie Switch

Otwórz edytor tekstu i utwórz nowy plik o nazwie switch_example.cpp. Wklej poniższy kod do pliku:

// Importujemy bibliotekę iostream, która pozwala na operacje wejścia/wyjścia
#include <iostream>

int main() {
    // Deklarujemy zmienną typu całkowitego 'day' i przypisujemy jej wartość
    int day = 3;

    // Rozpoczynamy instrukcję switch, która sprawdza wartość zmiennej 'day'
    switch (day) {
        case 1:
            // Jeśli wartość zmiennej 'day' wynosi 1, zostanie wykonany ten blok kodu
            std::cout << "Poniedziałek" << std::endl;
            break; // Przerywa wykonanie instrukcji switch

        case 2:
            // Jeśli wartość zmiennej 'day' wynosi 2, zostanie wykonany ten blok kodu
            std::cout << "Wtorek" << std::endl;
            break; // Przerywa wykonanie instrukcji switch

        case 3:
            // Jeśli wartość zmiennej 'day' wynosi 3, zostanie wykonany ten blok kodu
            std::cout << "Środa" << std::endl;
            break; // Przerywa wykonanie instrukcji switch

        case 4:
            // Jeśli wartość zmiennej 'day' wynosi 4, zostanie wykonany ten blok kodu
            std::cout << "Czwartek" << std::endl;
            break; // Przerywa wykonanie instrukcji switch

        case 5:
            // Jeśli wartość zmiennej 'day' wynosi 5, zostanie wykonany ten blok kodu
            std::cout << "Piątek" << std::endl;
            break; // Przerywa wykonanie instrukcji switch

        case 6:
            // Jeśli wartość zmiennej 'day' wynosi 6, zostanie wykonany ten blok kodu
            std::cout << "Sobota" << std::endl;
            break; // Przerywa wykonanie instrukcji switch

        case 7:
            // Jeśli wartość zmiennej 'day' wynosi 7, zostanie wykonany ten blok kodu
            std::cout << "Niedziela" << std::endl;
            break; // Przerywa wykonanie instrukcji switch

        default:
            // Blok default zostanie wykonany, jeśli żadna z powyższych wartości nie pasuje
            std::cout << "Niepoprawny dzień tygodnia!" << std::endl;
            break; // Przerywa wykonanie instrukcji switch
    }

    // Zwracamy 0, co oznacza, że program zakończył się pomyślnie
    return 0;
}

Jak działa ten program?

  1. Program zaczyna od deklaracji zmiennej day i przypisania jej wartości 3. Ta wartość reprezentuje dzień tygodnia, gdzie 1 to poniedziałek, 2 to wtorek, itd.
  2. Instrukcja switch jest używana do sprawdzenia wartości zmiennej day. Porównuje wartość day z każdą z opcji (case).
  3. Każdy blok case sprawdza, czy day ma określoną wartość. Jeśli tak, kod wewnątrz tego bloku jest wykonywany. Na przykład, jeśli day ma wartość 3, zostanie wyświetlony tekst “Środa”.
  4. break; jest używane, aby zakończyć działanie instrukcji switch. Zapobiega to wykonywaniu kolejnych bloków case nawet po znalezieniu dopasowania.
  5. Jeśli żadna z wartości nie pasuje do day, instrukcja default zostanie wykonana. Jest to opcjonalny blok, który definiuje, co zrobić, gdy nie znaleziono żadnego dopasowania. W naszym przypadku, jeśli wartość zmiennej day nie będzie mieścić się w zakresie od 1 do 7, zostanie wyświetlony komunikat “Niepoprawny dzień tygodnia!”.
  6. Na końcu program zwraca 0, sygnalizując pomyślne zakończenie działania.

Wyjaśnienie

W tym programie użyliśmy instrukcji switch, aby sprawdzić wartość zmiennej day. Każdy blok case sprawdza inną wartość, a jeśli day ma wartość równą którejś z nich, wyświetla odpowiedni dzień tygodnia. Instrukcja break jest kluczowa, ponieważ zatrzymuje dalsze przetwarzanie w switch po znalezieniu dopasowania. Jeśli break nie zostanie użyty, program będzie kontynuował wykonywanie kolejnych bloków case aż do końca instrukcji switch.

Warto też zauważyć, że blok default jest wykonywany, gdy żadna z wartości nie pasuje do zmiennej day. Jest to przydatne, gdy chcemy obsłużyć przypadki, których nie przewidzieliśmy w poszczególnych blokach case.

 

Scroll to Top