Konstrukcja switch

Na pewno kiedyś spotkałeś się z sytuacją, kiedy dzwoniąc np. na infolinię musiałeś wybrać odpowiedni przycisk, aby dodzwonić się do odpowiedniego konsultanta. W C++ właśnie instrukcja switch umożliwia poprzez podanie odpowiednie cyfry lub znaku wykonanie określonej części programu.

Składnia switch:
switch(przelacznik)
{
case 1: {
     Działanie1;
break;
}
case 2: {
     Działanie2;
}
default:
}

Teraz po wytłumaczmy powyższą składnię po kolei. Po słowie kluczowym switch w nawiasach musi się znaleźć zmienna, której wartość będzie sterowała naszą instrukcją.

  • case to bloki, które wykonają się w momencie wyboru.
  • break przerywa nam działanie danego bloku. Gdyby to słowo kluczowe nie znalazło się na końcu każdego case to przy wyborze pierwszego wykonałyby się wszystkie poniższe instrukcje znajdujące się w innych blokach case.
  • default – ten blok instrukcji wykona się, jeśli podana wartość nie posiada własnego case.

Sterować instrukcją może wszystko. Począwszy wyrazy – string (np. case „jeden”;) , znaki – char (np. case ‘a’;) , lecz najczęściej spotyka się wybór poprzez cyfry tak jak zastosowałem w przykładzie.

Przeanalizujmy poniższy program:
9.cpp


1: #include<iostream>
2:
3: using namespace std;
4:
5: int main()
6: {
7:      int przel;
8:
9:      cout<<"\tWybierz \n\t 1 - samochod; \n\t 2 – autobus;"<<endl;
10:      cin>>przel;
11:
12:      switch(przel)
13:      {
14:      case 1: {
15:           cout<<endl;
16:           cout<<"Dzisiaj do szkoly pojedziesz samochodem";
17:           break;
18:      }
19:      case 2: {
20:           cout<<endl;
21:           cout<<"Dzisiaj do szkoly pojedziesz autobusem";
22:           break;
23:      }
24:      default: cout<<"Zly wybor :(";
25:      }
26: }


Wynik działania programu:
Wybierz
1 – samochod;
2 – autobus;
Gdy wybierzemy 1:
1
Dzisiaj do szkoly pojedziesz samochodem

Gdy wybierzemy 2 wyświetli się informacja o autobusie.

W programie pojawiły się nowe elementy w linijce 9. i 15, 20.
cout<<"\tWybierz \n\t 1 - samochod; \n\t 2 – autobus;"<<endl;
cout<<endl;


\t – tabulator na konsoli
\n – nowa linia – odpowiednik endl
cout<<endl; - nowa pusta linia

Zadania
7. Przepisz powyższy program i dopisz kilka bloków. Poeksperymentuj z break i bez break.
© Mateusz Ratajczak         www.commitcode.pl