
W tej lekcji nauczymy się pisać programy potrafiące dokonywać wyboru ;-) Instrukcje warunkowe, bo o nich mowa służą do wybierania poleceń na podstawie warunku.
Jest najprostsza instrukcja warunkowa. Instrukcja sprawdza czy warunek jest spełniony, jeżeli tak, to niech program wykona określone instrukcje. Dla przykładu napiszmy sobie program, który będzie mówił, która z liczb jest większa. Jak widać przy instrukcjach warunkowych, jako warunków zwykle używa się operatorów porównania poznanych na poprzedniej lekcji.
Jak widać program porównuje wartości i wyświetla odpowiedni tekst. Po podaniu wartości zmiennych program trafia na i instrukcje if i sprawdza warunek w nawiasie, jeżeli warunek jest spełniony, czyli nie wychodzi wartość 0, wykonuje polecenie, które jest po nawiasie. Ogólny wzór instrukcji if:
if (warunek) instrukcja;
Instrukcję if można rozszerzyć dodając else. Jeżeli warunek nie jest spełniony to wykona się instrukcja, która jest po else.
if(warunek) instrukcja_jeżeli_prawda; else instrukcja_jeżeli_nie_prawda;
Przykładowy program, który sprawdza czy podane liczby są równe:
Tym razem użyliśmy tylko jednej instrukcji if z else. Po podaniu wartości zmiennym liczba1 i liczba2, program sprawdza czy wartości zmiennych są równe, jeżeli tak, to wykonuje instrukcję po nawiasie, jeżeli nie to wykonuje instrukcję po else.
Instrukcje można zagnieżdżać jedną w drugiej, spójrzmy na przykład:
Tutaj po podaniu zmiennych, najpierw program sprawdza równość, jeżeli zachodzi prawda to wypisuje, że są równe i do else już nie dochodzi, ale jeżeli liczby nie są równe to program wykonuje instrukcję else, a w niej kolejną instrukcję, która sprawdza czy liczba pierwsza jest większa niż liczba druga, jeżeli tak po wykonuje odpowiednią instrukcję, natomiast, jeżeli nie to wykonuje instrukcję po else. Można tą sytuację zaprezentować na schemacie:
Jeżeli chcemy wykonać kilka instrukcji w jednej instrukcji if, to należy wziąć je w klamry {}:
Jak widać na przykładzie klamerek nie trzeba kończyć średnikami, ale każdą instrukcję w klamrze należy zakończyć średnikiem. W przykładzie wypisanie napisu rozbiłem na dwa strumienie.
Instrukcja switch jest bardziej rozbudowana. W warunku podajemy nazwę zmiennej, nastepnie w możliwościach(case) podajemy jej możliwe wartości, oraz akcje dla danych wartości.
Działanie instrukcji switch różni się od instrukcji if. Najpierw piszemy słówko switch i w nawiasie warunek, zwykle jakąś zmienną. Kontynuacja instrukcji będzie w klamrach. Teraz piszemy słówko case i możliwą wartość, jaką może przyjąć warunek, dwukropek, następnie instrukcje, które mają się wykonać dla tej możliwości. Każdą możliwość trzeba zakończyć słówkiem break, jeżeli tego nie zrobimy, to instrukcje z innych możliwości będą się wykonywały, aż program nie napotka break; Program będzie sprawdzał kolejne możliwości, a jeżeli żadna nie będzie spełniona, to wykona to, co jest po default, czyli możliwości domyślnej.
Jest jeszcze pewna niewygodna sprawa przy stosowaniu instrukcji switch. Otóż bezpośrednio po case nie możemy deklarować zmiennych, ale można to ominąć biorąć możliwość case w klamry.