INDEX

Programowanie w C

Instrukcja decyzyjna switch


Instrukcja switch jest instrukcją decyzyjną. Składa się ze słowa kluczowego switch, po którym w nawiasach okrągłych umieszczamy nazwę zmiennej, której wartość chcemy przetestować. Poniżej, wewnątrz klamer wpisujemy zestawy instrukcji rozpoczynające się od słowa case, za którym umiejscowiona jest jedna ze zdefiniowanych przez nas wartości testowanej zmiennej - jest to tzw. etykieta wyboru. Dla każdej takiej etykiety możemy zredagować pewną instrukcję lub cały ich zestaw, pamiętając jednak, że jeśli chcemy podjąć tylko jedną decyzję, końcową instrukcją było break.

Wykonywanie instrukcji decyzyjnej rozpoczyna się od określenia wartości danej reprezentowanej przez zmienną lub wyrażenie warunkowe. Wartość tej danej jest kolejno porównywana z wartościami danych reprezentowanych przez wyrażenia występujące w etykietach wyboru. Jeśli zostanie stwierdzona równość to zostaną wykonane wszystkie instrukcje za tą etykietą (aż do instrukcji goto, break lub końca wszystkich instrukcji w ciele switch). Teraz widzimy jak ważne jest umieszczenie omawianej wcześnie instrukcji break na końcu każdego przypadku. Gdy tego nie uczynimy, a program stwierdzi zgodność powyższych wartość np. dla pierwszej etykiety, to wykona wszystkie instrukcje do samego końca, także te przyporządkowane innym etykietom.

Jeżeli opisywana równość nie zostanie stwierdzona, to wykonuje się instrukcje po specjalnej etykiecie o nazwie default. Może istnieć tylko jedna taka etykieta. Jeżeli jej nie użyto to wykonanie instrukcji decyzyjnej uważa się za zakończone.

Spójrzmy na kod programu switch.c. Konstrukcja decyzyjna rozpoczyna się wewnątrz pętli for. Zmienną testowaną jest iks. W zależności od jej aktualnej wartości wewnątrz pętli zostanie wywołana jedna z funkcji printf.

INDEX