Pozwalają wykonywać pewien blok instrukcji tylko wtedy, gdy zostanie spełniony określony przez nas warunek (warunek ma wartość logiczną).
Postać ogólna instrukcji if
if (warunek) instrukcja;
lub
if (warunek)
{
instrukcja1;
instrukcja2;
}
Opis
Jeśli warunek jest prawdziwy wykonaj instrukcję. Jeśli jest fałszywy nie rób nic.
Za każdym razem sprawdzane są wszystkie warunki (nawet jeśli spełniony był warunek z pierwszej instrukcji if), co niepotrzebnie przeciąża procesor.
Jeśli chcemy, aby w wyniku spełnienia warunku, wykonywanych było kilka poleceń należy ująć je w nawiasy klamrowe.
Przykład instrukcji if z jednym poleceniem
#include <cstdlib>
#include <iostream>
using namespace std;
int main () {
int a = 2, b = 4;
if ( a > b )
cout <<a<< "wieksze od " <<b<< endl;
if ( b > a )
cout <<b<< "wieksze od " <<a<< endl;
system ("PAUSE");
return 0;
}
Przykład instrukcji if z kilkoma poleceniami
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int a = 2, b = 4;
if ( a > b ) {
cout <<a<< "wieksze od " <<b<< endl;
cout<<"Roznica wynosi: " << a - b;}
if ( b > a ) {
cout << b << "wieksze od " << a <<endl;
cout<<"Roznica wynosi: " << b - a <<endl;}
system ("PAUSE");
return 0;
}
Postać ogólna instrukcji warunkowej z alternatywą: if...else
if (warunek)
instrukcja1;
else
instrukcja2;
lub
if (warunek)
{
instrukcja1;
instrukcja2;
}
else
{
instrukcja3;
instrukcja4;
}
Przykład instrukcji if...else
int main()
{
int a = 2, b = 4;
if(a > b)
cout << "Wieksze: " << a;
else
cout << "Wieksze: " << b;
}
Opis
Jeśli warunek w nawiasie spełniony wykonaj instrukcje 1, w przeciwnym wypadku instrukcje 2.
Dodatkowo możemy więc określić polecenia (drugi blok instrukcji rozpoczynający się słowem kluczowym else), które zostaną wykonane, jeżeli warunek nie zostanie spełniony.
Wykonany jest zawsze jeden z dwóch bloków.
Postać ogólna instrukcji wielokrotnego warunku: if...else if
if(warunek1) instrukcja1;
else if(warunek2) instrukcja2;
else
instrukcja3;
Przykład instrukcji if...else if
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int a = 2, b = 4;
if ( a > b )
cout << "Wieksze: " << a << endl;
else if ( b > a )
cout << "Wieksze: " << b << endl;
else
cout << "Liczby rowne." << endl;
system ("PAUSE");
return 0;
}
Opis
Jeśli warunek1 jest spełniony, wykonaj instr1 i pomiń resztę instrukcji. Jeśli nie jest, sprawdź czy warunek2 jest spełniony. Jeśli tak, pomiń resztę. Jeśli nie, wykonaj instrukcję 3.
program wybiera operacje do wykonania zależnie od wybranej opcji tj. wartości zmiennej kontrolnej, na podstawie której instrukcja switch przełącza do odpowiadającej jej wartości (tzw. etykiety) zdefiniowanej w miejscu po słowie case i wykonuje instrukcje,
zmienna musi być typu całkowitego lub znakowego, a odpowiadająca jej etykieta stałą tego samego typu;
odmiana instrukcji if...else.
Postać ogólna instrukcji wielokrotnego wyboru
switch (zmienna lub wyrażenie){
case liczba1: instrukcje1; break;
case liczba2: instrukcje2; break;
case liczba3: instrukcje3; break;
deafault: instrukcje domyślne;
}
Przykład instrukcji switch...case
#include <iostream>
using namespace std;
int main()
{
int ocena;
cout << "Podaj ocene z kolokwium: ";
cin >> ocena;
switch( ocena )
{
case 1: cout << "niedostateczny" << endl; break;
case 2: cout << "dopuszczajacy" << endl; break;
case 3: cout << "dostateczny" << endl; break;
case 4: cout << "dobry" << endl; break;
case 5: cout << "bardzo dobry" << endl; break;
case 6: cout << "celujący" << endl; break;
default: cout << "Inna skala ocen" << endl; break;
}
return 0;
}
Opis
po słowie kluczowym switch jest zmienna lub wyrażenie,
jeśli wartość zmiennej lub wyrażenia jest równa wartości liczba1 (instrukcja switch przekieruje w odpowiednie miejsce) wykonywane są instrukcje1, a gdy jest równa liczba2, wykonywane są instrukcje2 itd.,
polecenie break przerywa działanie instrukcji switch
case (tzw. szufladka) - nie może mieć takich samych wartości,
gdy nie uda się dopasować wartości zmiennej lub wyrażenia do żadnej wartości występującej po słowie case można opcjonalnie dodać instrukcje domyślne po słowie słowie kluczowym default (odpowiednik else) do których przeskoczy program.
Znajdowanie większej z 2 liczb lub liczb równych (if). Napisz program, w który po wprowadzeniu 2 dowolnych liczb wyświetli na ekranie komunikat, która z nich jest większa lub że liczby są równe.
Znajdowanie większej z 2 liczb z wypisaniem różnicy (if, kilka poleceń). Napisz program, w który po wprowadzeniu 2 dowolnych liczb wyświetli na ekranie 2 komunikaty: a) która z nich jest większa lub że liczby są równe, b) jaka jest różnica pomiędzy liczbami.
Znajdowanie większej z 2 liczb (if...else) Napisz program, w którym po wprowadzeniu 2 różnych od siebie liczb wyświetli na ekranie komunikat, która z nich jest większa. Skorzystaj z instrukcji warunkowej if-else. Jeśli program działa zmodyfikuj go tak, aby wyświetlał liczbę mniejszą.
Znajdowanie większej z 2 liczb lub liczb równych (if-else-if). Napisz program, w którym po wprowadzeniu 2 różnych od siebie liczb wyświetli na ekranie komunikat, która z nich jest większa lub, że są równe.Skorzystaj z instrukcji warunkowej if-else-if
Pełnoletni (if else). Napisz program, który zapyta ile masz lat i sprawdzi czy jesteś pełnoletni.
Parzyste - Nieparzyste (if else). Napisz program sprawdzający czy podana liczba jest parzystą czy nieparzystą.
Obliczanie pola figur płaskich (switch). Napisz program obliczający pola figur płaskich: prostokąta, trójkąta, koła. Uwzględnij na początku działania programu możliwość wyboru figury, której pole będzie obliczane.
Kalkulator (switch). Napisz kalkulator dla dwóch dowolnych liczb całkowitych wprowadzanych z klawiatury, wykonujący wybrane z czterech działań matematycznych: +, -, *, /.
Czy to wakacje? (switch). Napisz program w którym podasz nr miesiąca, a on określi czy to wakacje.
BMI. Napisz program sprawdzający dla danej osoby współczynnik BMI. Program powinien poprosić o podanie wagi w kilogramach i wzrostu w metrach osoby, wyliczyć współczynnik BMI, a następnie gdy zachodzi warunek:
BMI < 18,5 wypisać wniosek "Niedowaga"
18,5<= BMI <25 wypisać wniosek "Waga w normie"
25 <= BMI <30 wypisać wniosek "Nadwaga"
BMI >= 30 wypisać wniosek "Otyłość"
Wzór na obliczenie BMI = waga/(wzrost*wzrost)