Dr inż. Stanisław Lipski
1
Jeśli warunek jest spełniony, wykonaj instrukcję - tak
najkrócej można opisać instrukcję warunkową if. Składnia
wygląda następująco:
if (warunek) instrukcja;
Do sprawdzania warunku korzystamy z następujących
operatorów logicznych:
== równy (nie mylić z przypisaniem =)
!= różny
>= większy lub równy
<= mniejszy lub równy
> większy
< mniejszy
&& iloczyn logiczny (i)
|| suma logiczna (lub)
! negacja logiczna (nie)
2
int liczba;
cin >> liczba;
if (liczba >= 5)
{
cout << "Liczba większa lub równa 5";
cout << "Zgadza się";
}
3
Warto zwrócić tutaj uwagę na jeszcze jeden aspekt języka
C++ - jeśli chcemy wykonać więcej instrukcji, ale
wolelibyśmy potraktować je jako jedną, umieszczamy je w
nawiasie klamrowym { }.
Gdyby w naszym przykładzie nawias ten nie wystąpił,
program za każdym razem (bez względu na wartość logiczną
warunku) wyświetlałby napis: "Zgadza się", gdyż warunek
tyczy się wyłącznie instrukcji stojącej bezpośrednio po nim
(po sprawdzeniu warunku program wykonywałby następne
instrukcje w programie, a więc: cout << "Zgadza się").
Nawiasy klamrowe umożliwiają więc użycie wielu instrukcji w
jednym miejscu (tyczy się to nie tylko konstrukcji
if(warunek), ale też wszystkich innych, m.in. pętli).
Instrukcja warunkowa sprawdza w istocie jedynie to, czy
zdanie logiczne (warunek) ma wartość logiczną różną od 0.
Zatem w przypadku zapisu: if(20) instrukcja1, instrukcja1
zostałaby wykonana. Analogicznie - jeśli napisalibyśmy if(0),
to warunek nie byłby spełniony.
4
W jednej instrukcji warunkowej może znaleźć się również kilka
warunków. Korzystamy wtedy z && lub || (patrz wyżej). Więcej
warunków zapisujemy tak:
if((warunek1) && (warunek2)) instrukcje; - jeśli warunek1 i
warunek2 są prawdziwe, to wykonaj instrukcje
if((warunek1) || (warunek2)) instrukcje; - jeśli warunek1 lub
warunek2 jest prawdziwy, to wykonaj instrukcje
Możemy również skorzystać z negacji:
if(!(warunek1)) instrukcje; - jeśli warunek1 jest fałszywy, to
wykonaj instrukcje.
A jeśli warunek nie zostanie spełniony? Co wtedy?
Jeśli chcemy, aby coś się stało, musimy wówczas posłużyć się
instrukcją else:
if(warunek1) instrukcje1; // jeśli warunek jest prawdziwy, to
wykonaj instrukcje1
else instrukcje2; // w przeciwnym wypadku wykonaj instrukcje1
5
char znak;
cin >> znak;
if (znak == 'p') cout << " Nacisnales znak: p";
else cout << "Nacisnales coś innego!";
Oczywiście instrukcje sprawdzania warunku
można w sobie zagnieżdżać, np.
if (warunek1) // jeśli warunek1 jest prawdziwy to
if (warunek2) // sprawdź warunek2 i jeśli jest on
prawdziwy, to pisz na ekranie:
cout << "Warunki spelnione!";
6
#include <iostream.h>
main()
{
int a, b;
cout << "Wprowadz dlugosc pierwszego boku: ";
cin >> a;
cout << endl << "Wprowadz dlugosc drugiego boku: ";
cin >> b;
if ((a != 0) && (b != 0))
cout << endl << "Pole prostokata wynosi: " << a*b;
else cout << "Jako jedna z dlugosci podales 0 - pomylka";
}
7
Napisz program sprawdzający, czy z
podanych odcinków o długościach podanych
przez użytkownika da się zbudować trójkąt
(czy suma długości dwóch boków jest
większa od trzeciego), a jeśli tak, to czy jest
on prostokątny (czy dla boków a, b, c: a2 +
b2 = c2).
8
stlipski@gmail.com9
9