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
day
i przypisania jej wartości 3. Ta wartość reprezentuje dzień tygodnia, gdzie 1 to poniedziałek, 2 to wtorek, itd. - Instrukcja
switch
jest używana do sprawdzenia wartości zmiennejday
. Porównuje wartośćday
z każdą z opcji (case
). - Każdy blok
case
sprawdza, czyday
ma określoną wartość. Jeśli tak, kod wewnątrz tego bloku jest wykonywany. Na przykład, jeśliday
ma wartość 3, zostanie wyświetlony tekst “Środa”. break;
jest używane, aby zakończyć działanie instrukcjiswitch
. Zapobiega to wykonywaniu kolejnych blokówcase
nawet po znalezieniu dopasowania.- Jeśli żadna z wartości nie pasuje do
day
, instrukcjadefault
zostanie wykonana. Jest to opcjonalny blok, który definiuje, co zrobić, gdy nie znaleziono żadnego dopasowania. W naszym przypadku, jeśli wartość zmiennejday
nie 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
.