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 instrukcjiswitch. Zapobiega to wykonywaniu kolejnych blokówcasenawet 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.
