Wyrażenie warunkowe if
Do tej pory pisaliśmy programy, które robiły to samo, niezależnie od otrzymanych danych (jedynymi możliwymi urozmaiceniami były błędy, gdy przekazane dane były niewłaściwe ;)). Pora to zmienić!
Przeanalizujmy wyrażenie if. Składnia jest następująca:
if (WARUNEK)
INSTRUKCJE
elsif (INNY_WARUNEK)
INNE_INSTRUKCJE
else
JESZCZE_INNE_INSTRUKCJE
end
To co dzieje się po wykonaniu kodu zgodnego z powyższym schematem jest bardzo intuicyjne. Jeśli spełniony (tj. o wartości logicznej true) jest WARUNEK przy słowie kluczowym if, wykonają się INSTRUKCJE poniżej, aż do kolejnego słowa kluczowego (w tym przypadku elsif). Jeśli zaś WARUNEK ma wartość false, INSTRUKCJE te nie będą wykonane i nastąpi ewaluacja WARUNKU przy słowie elsif. Jeśli INNY_WARUNEK jest spełniony wykonają się INNE_INSTRUKCJE poniżej, aż do kolejnego słowa kluczowego (w tym przypadku else), w przeciwnym wypadku wykona się kod między słowami else i end.
Ilość warunków elsif jest dowolna, więc poprawne będą również wyrażenia o schemacie jak poniżej...:
if (WARUNEK_1)
INSTRUKCJE_1
elsif (WARUNEK_2)
INSTRUKCJE_2
elsif (WARUNEK_3)
INSTRUKCJE_3
elsif (WARUNEK_4)
INSTRUKCJE_4
else
INSTRUKCJE_5
end
... i poniżej:
if (WARUNEK_1)
INSTRUKCJE_1
else
INSTRUKCJE_5
end
Co więcej, słowo kluczowe else, które “zbiera pozostałe przypadki” również nie jest obowiązkowe. Warunki nie muszą zaś być objęte w nawiasy (ale czasem poprawia to czytelność kodu). Poprawny będzie więc zapis:
if WARUNEK
INSTRUKCJE
end
Spróbujmy teraz napisać i przeanalizować program, który sprawdzi, czy podana liczba jest podzielna przez 13: