Wybór wielokrotny w języku C++
Wybór wielokrotny w języku C++
Trójargumentowe wyrażenie wyboru
Używane jest w sytuacjach, gdy wystarczy zwrócić prostą informację zależną od jednego warunku. W takim przypadku rozbudowywanie kodu jest niecelowe.
Instrukcja taka odpowiada poleceniom:
Porównajmy kody dwóch funkcji. Funkcje przyjmują dwa argumenty. Każda z nich ma sprawdzić czy pierwsza liczba przekazana jako argument jest podzielna przez drugą.
Pierwsza funkcja wykorzystuje zwykłą konstrukcję if / else:
Druga funkcja wykorzystuje wyrażenie trójargumentowe:
Obie powyższe funkcje mogą być zapisane również następująco:
Innym przykładem zastosowania wyrażenia trójargumentowego jest podanie jednego z dwóch komunikatów, zależnych od spełnienia pewnego warunku.
Instrukcja switch w języku C++
Instrukcja wielokrotnego wyboru w języku C++ rozpoczyna się od słowa kluczowego switch:
Przedstawiliśmy sposób użycia instrukcji switch ze zmienną typu całkowitego. Nie ma jednak przeszkód, aby wykorzystać zmienne typu znakowego (char):
Definiując zmienne znakowe użyliśmy znaków apostrofu ('), a nie cudzysłowów. W języku C++ stosujemy apostrofy, kiedy chcemy przypisać zmiennej typu char konkretny znak. Użycie cudzysłowu oznacza, że chodzi o ciąg znaków. Jest on zawsze zakończony tzw. znakiem pustym, mającym w kodzie ASCII wartość 0.
Zmienna typu char może przechowywać tylko pojedyncze znaki. Zastosowanie cudzysłowów spowodowałoby dodanie znaku pustego.
Polecenie break
Przedstawiając składnię komendy switch użyliśmy instrukcji breakbreak. Kończy ona zestaw poleceń towarzyszących konkretnemu przypadkowi (case). Gdy program napotka komendę break, przerywane jest wykonywanie całej instrukcji wyboru wielokrotnego.
Przyjrzyjmy się ostatniemu przykładowi. Gdy zacznie być przetwarzana linia 10, program sprawdzi, czy wartość zmiennej litera jest równa przypadkowi case 'c'. Ponieważ okaże się, że tak właśnie jest, rozpocznie się wykonywanie fragmentu kodu zapisanego w linii numer 11. Później pojawia się komenda break. Oznacza to zakończenie instrukcji switch i przejście za linię numer 19.
Łączenie warunków
Wiadomo już, dlaczego stosujemy instrukcję break. Pomyśl, jak zachowa się poniższy program:
Użycie dwóch słów kluczowych case spowoduje, że możemy dokonać wyboru na podstawie większej liczby wyrażeń. Warto pamiętać, że po wykonaniu instrukcji program będzie kontynuował sprawdzanie następnych warunków, chyba że natrafi na instrukcję break.
Skoro wartość zmiennej litera to 'B', wykona się linijka 10. Efekt byłby taki sam, gdyby litera była równa 'b'.
Skoro wartość zmiennej litera to wielkie 'B', wykona się linijka 10. Efekt byłby taki sam, gdyby litera była równa małe 'b'.
Polecenie default
W instrukcji wyboru wielokrotnego mamy do dyspozycji polecenie default. Oznacza ono: „w każdym przypadku”.
Innymi słowy default towarzyszy instrukcjom wykonywanym w sytuacji, gdy wartość zmiennej przekazanej poleceniu switch nie odpowiada żadnemu przypadkowi. Mamy dzięki temu pewność, że program wykona fragment kodu przypisany poleceniu default. Oto przykład:
Wartość zmiennej numer_zawodnika nie pojawiła się w opisie żadnego przypadku, a zatem wykonane zostaną instrukcje towarzyszące słowu kluczowemu default. Jeżeli ten fragment kodu jest zapisany na końcu instrukcji wielokrotnego wyboru, nie ma potrzeby używania komendy break. W innym przypadku jest to niezbędne.
Słownik
używane w języku C++ polecenie służące do opuszczenia instrukcji switch po wykonaniu sekwencji komend odpowiadającej konkretnemu przypadkowi (case)