background image

Instrukcje 
warunkowe

background image

Instrukcje warunkowe

Jak sama nazwa wskazuję są to instrukcje, 
które wykonują się tylko wtedy gdy 
spełniony
jest podany warunek. Dzięki instrukcjom 
warunkowych program może "zachowywać" 
się
zależnie od spełnienia pewnych warunków.

background image

Intstrukcja if - else

Podstawowa instrukcja warunkowa wygląda następująco:

if( <warunek> )
 {//blok1
  ...
 }
 else
  {//blok2
   ...
  }

Jeżeli spełniony jest warunek to wykonane zostaną instrukcje 

zawarte w bloku1, a gdy warunek nie jest spełniony to wykonane 

zostaną instrukcje z bloku2.
Wartość zwracana przez warunek w instrukcjach warunkowych nie 

musi być typu bool ale może być także wartością liczbową i w takim 

przypadku warunek nie jest spełniony wtedy i tylko wtedy gdy 

wartość ta wynosi 0!
Gdy wartość jest różna od zera (również mniejsza od zera) to 

warunek jest spełniony.

background image

Przykład instrukcji 
warunkowej

#include <iostream>
using namespace std;
int main()
{
 

int x;

 

cout << "Podaj liczbę całkowitą:" << endl;

 

cin >> x;

 if((x % 2)==1) cout << "Liczba nieparzysta.";
  

else cout << "Liczba parzysta.";

 

return 0;

}

Po instrukcji warunkowej if nie musi występować słowo 

kluczowe else (oczywiście nie ma wtedy Bloku2 ).
Jeżeli w jednym z bloków znajduję się tylko jedna instrukcja to 

nie musi być ona zawarta w klamrach {} (czyli nie  musimy 

tworzyć bloku) tak jak ma to miejsce w przedstawionym  

przykładzie.

background image

Instrukcja switch - case

Następną  instrukcją warunkową jest konstrukcja switch - case, która pozwala 

nam na wybór więcej niż jednej opcji:

switch( <wyrażenie> )
{
 case <wartość1>:
    instrukcja1;
    instrukcja2;
    //...
  break;
 case <wartość2>:
    instrukcja1;
    instrukcja2;
    //...
  break;
 //...
 default:
     instrukcja1;
    instrukcja2;
    //...
}

background image

Instrukcja switch - case

Instrukcja switch oblicza wartość <wyrażenia> i dopasowuje 

go do jednej z podanych opcji. Wszystkie opcje muszą być 

zawarte w bloku. Po słowie kluczowym case podajemy 

<wartość>, a następnie dwukropek. Po dwukropku podajemy 

instrukcje, które z kolei nie muszą być już zawarte w nowym 

bloku. Jeżeli wartość <wyrażenia> będzie odpowiadała jednej 

z <wartości> to wykonywane są wszystkie instrukcje 

występujące po niej aż do napotkania słowa kluczowego 

break!
Jeżeli żadna z <wartości> nie będzie pasowała do wartości 

<wyrażenia> to wykonane zostaną instrukcje znajdujące się  

po słowie kluczowym default.
Jeżeli nie występuje opcja default i inne możliwości także nie 

pasują to nie zostanie wykonana żadna instrukcja.

background image

Przykład

#include <iostream>
using namespace std;
int main()
{
 short x;
 cout << "Podaj cyfrę od 0 do 5" << endl;
 cin >> x;
 switch(x)
 {
  case 0: cout << "Wybrano 0" << endl;
   break;
 case 1: cout << "Wybrano 1" << endl;
   break;
 case 2: cout << "Wybrano 2" << endl;
   break;
  case 3:
 case 4:
 case 5: cout << "Wybrano 3, 4 lub 5" << endl;
   break;
 default: cout << "Wybrana liczba nie zawiera się w [0,5]" << endl;
 }
 return 0;
}

background image

Instrukcja goto

Instrukcja goto jest instrukcją skoku bezwarunkowego. 

Powoduje ona "przeskoczenie„ programu do innego 

miejsca w tym samym bloku wskazanego etykietą:

goto <etykieta>;
//...
<etykieta>:
//...

Instrukcja skoku bezwarunkowego goto może być 

najczęściej  zastąpiona przez pozostałe instrukcje 

warunkowe, może być także używana w połączeniu z 

nimi. Powinna być używana w sposób rozsądny i tylko 

tam gdzie rzeczywiście powoduje ona  przyspieszenie 

programu bądź zwiększa jego czytelność (np. 

przerywanie zagnieżdżonych pętli).


Document Outline