Definiowanie warunków
Definiowanie warunków
Warunek może przyjąć dwie wartości logiczne: prawda (true) lub fałsz (false). Często oznaczane także 1 (prawda) i 0 (fałsz).
Operacje zawarte w instrukcji warunkowej wykonają się tylko wtedy, kiedy postawiony warunek przyjmie wartość true.
Jedną z podstawowych operacji wykorzystywanych do tworzenia warunków, podobnie jak w przypadku naszego programu obliczającego cenę, jest operacja porównania. W zależności od wyniku działania zwracana jest odpowiednia wartość logiczna, np.
Do przypisania wartości do zmiennej używa się operatora =, natomiast do porównania ze sobą dwóch elementów służą operatory relacyjne. Podwójny znak równości == wskaże, czy dwa elementy są sobie równe. Operator „różne od” zapisujemy jako !=. Do silnych nierówności wykorzystamy > i <, natomiast do słabych >= i <=.
Warunki złożone
Choć warunki można zagnieżdżaćzagnieżdżać, to istnieją metody, które ułatwiają zapisywanie złożonych warunków.
Warunki zagnieżdżone:
W języku C++ mamy do dyspozycji zestaw trzech operatorów logicznychoperatorów logicznych.
Koniunkcję wyrażamy za pomocą operatora &&. Zwróci on wartość true wtedy i tylko wtedy, gdy wszystkie argumenty mają wartość true.
Operator || reprezentuje alternatywę. Zwróci on wartość true, gdy przynajmniej jeden argument ma wartość true.
Istnieje również jednoargumentowy operator negacji !. Zwróci on wartość true dla argumentu o wartości false i false dla argumentu o wartości true.
Warunki połączone operatorami:
Instrukcja else oraz else if
Język C++ ma również dwie dodatkowe instrukcje: else oraz else if. Pierwsza pozwala wykonać alternatywny blok kodu, kiedy kryterium instrukcji warunkowej nie zostanie spełnione. Druga jest połączeniem obu wspomnianych instrukcji, a więc wykona blok kodu, jeśli instrukcja warunkowa nie zostanie spełniona, ale jeśli zostanie spełniony nowy warunek.
Przykładowy problem
Przyjrzyjmy się bardziej rozbudowanemu przykładowi. Wyobraźmy sobie taką sytuację: pewna uczelnia prowadzi roczne kursy przygotowawcze dla przyszłych studentów. Nie są one obowiązkowe, jednak w rekrutacji dają pewną przewagę nad osobami, które w nich nie uczestniczyły. Uczelnia oblicza punkty rekrutacyjne w taki sposób, że wynik egzaminu maturalnego na poziomie rozszerzonym mnoży przez 3, a podstawowym przez 2. Finaliści olimpiad zdobywają dodatkowe 100 punktów, a laureaci 150.
Osoby uczestniczące w kursie niezależnie od uczestnictwa w olimpiadach oraz od poziomu, na jakim zdają egzamin maturalny ze wskazanego przedmiotu, mnożą jego wynik przez 3 oraz otrzymują dodatkowo 150 punktów.
Korzystając z samej instrukcji warunkowej, musielibyśmy stworzyć szereg warunków:
Wykorzystując operatory logiczne, możemy znacznie uprościć kod obliczający wynik rekrutacji:
Wykorzystując instrukcje else oraz else if, otrzymamy taki kod:
Słownik
operator pozwalający na wykonywanie podstawowych operacji algebry Boole'a, takich jak koniunkcja, alternatywa czy negacja
umieszczenie jednej operacji wewnątrz drugiej