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?
- Program zaczyna od deklaracji zmiennej dayi przypisania jej wartości 3. Ta wartość reprezentuje dzień tygodnia, gdzie 1 to poniedziałek, 2 to wtorek, itd.
- Instrukcja switchjest używana do sprawdzenia wartości zmiennejday. Porównuje wartośćdayz każdą z opcji (case).
- Każdy blok casesprawdza, czydayma określoną wartość. Jeśli tak, kod wewnątrz tego bloku jest wykonywany. Na przykład, jeślidayma wartość 3, zostanie wyświetlony tekst “Środa”.
- break;jest używane, aby zakończyć działanie instrukcji- switch. Zapobiega to wykonywaniu kolejnych bloków- casenawet po znalezieniu dopasowania.
- Jeśli żadna z wartości nie pasuje do day, instrukcjadefaultzostanie wykonana. Jest to opcjonalny blok, który definiuje, co zrobić, gdy nie znaleziono żadnego dopasowania. W naszym przypadku, jeśli wartość zmiennejdaynie będzie mieścić się w zakresie od 1 do 7, zostanie wyświetlony komunikat “Niepoprawny dzień tygodnia!”.
- 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.
