Instrukcje
warunkowe
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.
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.
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.
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;
//...
}
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.
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;
}
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).