Instrukcja warunkowa if
Instrukcja if może mieć trzy formy:
if(warunek) instrukcja1;
lub
if(warunek) instrukcja1;
else instrukcja2;
lub (Blok instrukcji)
if(warunek1) instrukcja1:
else if(warunek2) instrukcja2;
else if(warunek3) instrukcja3;
else if(warunek4) instrukcja4;
Jak działa taka instrukcja?
1. Najpierw sprawdzany jest warunek.
Jeśli jest on spełniony (prawda), to wykonywana jest instrukcja1;
Jeśli warunek nie jest spełniony (fałsz), to ta instrukcja1 nie jest wykonywana.
2. W drugiej formie (z wykorzystanie else):
Warunek jest spełniony (prawda), to zostanie wykonana instrukcja1, w przeciwnym razie gdy nie jest spełniony warunek (fałsz) zostanie wykonana instrukcja2.
3. W trzeciej formie (z wykorzystaniem else if):
Gdy spełniony jest pierwszy warunek (prawda) to instrukcja1 jest wykonywana i następuje koniec pracy w tej konstrukcji, natomiast jeśli warunek nie zostanie spełniony (fałsz) to sprawdzany jest warunek2 i jeśli będzie on prawdziwy to zostanie wykonana instrukcja2 i koniec pracy w tej konstrucji i tak dalej z warunek3, warunek4...
Przykład:
#include <iostream>
int main()
{
int wiek; // Deklaracja zmiennej wiek
std::cout <<"Sprawdz, czy jestes pelnoletni \\\\n"
<<"Podaj swoj wiek: ";
std::cin >> wiek; // Pobieranie zmiennej wiek
if (wiek >= 18) //warunek sprawdza czy liczba jest wieksza badz rowna 18
std::cout <<"Brawo! Jestes pelnoletni"; // jesli w/w zostanie spelniony to wyswietla sie taka informacja
else if (wiek <=0 ) //Jesli 1 warunek nie zostanie spelniony to sprawdzany jest nastepny, czyli czy liczba jest mniejsza badz rowna 0
std::cout <<"Twoj wiek nie moze byc mniejszy badz rowny 0!"; // jesli jest to wyswietla sie ten komunikat
else //natomiast w kazdym innym przypadku wyswietli sie komunikat ponizej
std::cout <<"Niestety, nie jestes jeszcze pelnoletni";
return 0;
}
Razi91 23.02.2014 o 12:05
Pomylone jest tu pojęcie bloku. Składnia C/C++ mówi że po warunku ma się znaleźć jedna instrukcja lub blok, blok wydziela się klamrami: {}. Po tej instrukcji/bloku może być else, który wykona się w przypadku niespełnienia warunku lub kolejna niezwiązana z warunkiem instrukcja. Tym samym za else ma się znaleźć tak samo jak po warunku: instrukcja lub blok. I trzeba pamiętać, że instrukcją też jest if, stąd konstrukcja ?else if? ? else po którym jest jedna instrukcja którym jest warunek.