Do tej pory programy w trakcie kursu były prostolinijne: zaczynaliśmy program, przyjmowaliśmy dane i wypisywaliśmy wynik. Dzisiejsza lekcja wytłumaczy instrukcję warunkową if. Pozowali to na sprawdzanie warunków. Dzięki temu nasz program będzie mógł wypisywać wynik zależnie od wprowadzonej wartości. Dzięki temu nasz program będzie można nieco rozgałęzić.
Instrukcja warunkowa jest sygnalizowana kompilatorowi poprzez słowo if (ang. jeśli). Następnie w nawiasach okrągłych podajemy warunek. Jeśli warunek będzie prawdą to zostaną wykonane instrukcje znajdujące się nawiasach wąsatych. Instrukcje wpisujemy tak samo jak do tej pory w programie. Różnica polega tylko na tym, że zostaną wykonane po spełnieniu określonych warunków. Wewnątrz funkcji if możemy użyć funkcji if.
Załóżmy, że mamy dwie liczby do porównanie. Wtedy warto znać poniższe operatory, aby swobodnie móc je porównywać:
Słownie | Matematycznie | C++ |
---|---|---|
a równe b | a = b | a == b |
a różne od b | a ≠ b | a != b |
a większe od b | a > b | a > b |
a większe, równe b | a ≥ b | a >= b |
a mniejsze od b | a < b | a < b |
a mniejsze, równe b | a ≤ b | a <= b |
Częstym błędem podczas nauki programowanie jest błędne lub niedokładne zapamiętanie operatorów <= oraz >=. Jednak warto podążać za wskazówkami słownym np. większe, równe, dlatego najpierw > potem =.
Spróbujmy teraz napisać program, który wczyta liczbę. Następnie sprawdzimy czy wczytana liczba jest dodatnia czy ujemna.
(5.) Deklarujemy zmienną a typu int i (6.) wczytujemy jej wartość od użytkownika. (7.) Sprawdzamy czy a < 0. Jeśli tak to (8.) wypisujemy, że jest dodatnia. Podobnie robimy dla sprawdzania (9. - 11.) czy liczba jest ujemna oraz (12. - 14.) czy jest zerem.
Podany program prawidłowo rozpoznaje znak liczby. Kod jednak można udoskonalić. W przypadku kiedy już upewniliśmy się, że liczba jest dodatnia to niepotrzebnie sprawdzamy czy liczba jest ujemna, albo czy jest zerem. Jednak, aby to usprawnić musimy poznać słowo else i jego znaczenie.
To jest pełna forma instrukcji if .. else ... Polega na tym, że jeśli jest spełniony warunek to wykonywane są instrukcje z lista_instrukcji1. Jednak jeśli nie to program przechodzi do lista_instrukcji2.
Spróbujmy teraz zastosować if .. else .. w kodzie:
Dzięki zmianom kod działa teraz tak: (1.) Sprawdzamy czy liczba jest większa od 0. Jeśli tak to (2.) wypisujemy czy liczba jest dodatnia. W linijce (3.) jest } co oznacza koniec ciągu instrukcji. Funkcja pomija klauzule po else, więc przechodzi do kodu po tej części programu. Jednak jeśli liczba jest niedodatnia to przechodzimy do (4.) listy instrukcji po else. Tu mamy kolejną instrukcję if. Tym razem sprawdzamy czy liczba jest ujemna. Jeśli tak to (5.) wypisujemy komunikat, a jeśli nie to stwierdzamy, że (7.) liczba jest zerem. Dzięki instrukcji if .. else .. nie musimy sprawdzać czy liczba jest zerem. Dzięki zmianom w najgorszym przypadku wykonamy dwa porównanie, a nie za każdym razem trzy.
Lekcja 7 dobiegła końca. Zajrzyj do kodu źródłowego, aby przeanalizować wypisywanie danych jeszcze raz. Następnie spróbuj wykonać zadania, aby utrwalić materiał.
Napisz program, który wczyta liczbę całkowitą i wypisze na ekran jej wartość absolutną. W tym celu użyj instrukcji if.
Napisz program, który wczyta dwie liczby rzeczywiste. Na ekran powinna zostać wypisana wartość absolutna ich różnicy. W rozwiązaniu nie wolno wyliczyć różnicy, a następnie brać jej wartość absolutną.