background image

Samouczek C++

Instrukcja warunkowa IF

Dr inż. Stanisław Lipski

1

background image

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 

background image

int liczba; 

cin >> liczba; 

if (liczba >= 5) 

cout << "Liczba większa lub równa 5"; 

cout << "Zgadza się"; 

3

Przykład

background image

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

background image

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

background image

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

background image

#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

background image

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 

background image

stlipski@gmail.com9

Dziękuję za 
zainteresowanie

9


Document Outline