Samouczek C++
Instrukcja warunkowa IF
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
Redakcja
int liczba;
cin >> liczba;
if (liczba >= 5)
{
cout << "Liczba większa lub równa 5";
cout << "Zgadza się";
}
3
Przykład
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
Uzupełnienie
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
Kilka warunków
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
Przykład
#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
Prostokąt
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
Zadanie
stlipski@gmail.com9
Dziękuję za
zainteresowanie
9