Instrukcja warunkowa ma postać:
if (warunek) { akcja }
Można też pominąć nawiasy klamrowe lecz wtedy tylko pierwszy wiersz po instrukcji zostanie wykonany jeżeli warunek zostanie spełniony. Przykład z poprzedniego działu, nieco rozbudowany:
if (param > 1) { stat = 10; } else if (param == k) { stat = 3; } else { stat = 0; // coś innego }
Instrukcja decyzyjna (swith) jest podobna do instrukcji warunkowej lecz czasami jej użycie daje bardziej czytelny kod. Oto ogólna postać instrukcji:
switch (zmienna) { case wartość1: { //akacja } case wartość2: //akcja case wartość3: wartość4: wartość5: //akcja default: { //akcja } }
Tak jak w if możemy stosować nawiasy { } po case wartość: lecz jeżeli mamy prostą akcję mieszczącą się w jednym wierszu to nie jest to konieczne. Można też dla kilku wartość przypisać jedną kację (wartość3-5). default jest opcjonalne i odpowiada za akcję wykonaną w przypadku jeżeli wartość parametru nie będzie pasować do żadnego case.
void nic(int param)
{
switch (param)
{
case 0: case 1: case 2:
{
cout << "PARAM: " << param << " Jest równy 0, 1 albo 2 :)" << endl;
break;
}
case 3:
cout << "PARAM: " << param << " Jest równy 3" << endl;
break;
default:
{
cout << "Nie mam pojęcia co się dzieje" << endl;
break;
}
}
}
int main()
{
nic(2);
cout << "---------------------" << endl;
nic(3);
cout << "---------------------" << endl;
nic(88);
}
Jeżeli akcja zawarta dla danych case nie używa return to trzeba zastosować break; by przerwać dalsze sprawdzanie instrukcji w przypadku natrafieniu na właściwą opcję. Powyższy program da wynik:
PARAM: 2 Jest równy 0, 1 albo 2 :) --------------------- PARAM: 3 Jest równy 3 ---------------------
Pętla while ma następującą postać:
while ( wyrażenie-wartość logiczna ) instrukcja
Instrukcja ta polega na cyklicznym wykonywaniu pętli – sprawdzanie wartości wyrażenia i jeżeli zwraca wartość Prawda to wykonanie instrukcji. Pętla zostaje przerwana gdy wyrażenie zwróci wartość Fałsz. Jeżeli instrukcja zajmuje więcej niż 1 wiersz to umieszczamy ją w nawiasach klamrowych. Przykładowy kod:
#include<iostream>
using namespace std;
int main()
{
int y = 0;
int x = 0;
while (x < 5)
{
cout << "X: " << x << endl;
x++;
}
cout << endl;
cout << endl;
while (x < 10 and y < 2)
{
cout << "X: " << x << "| Y: " << y << endl;
x++;
y++;
}
}
Pętla for ma postać:
for (inicjator ; warunek ; przyrost) instrukcja
Albo żeby było jaśniej:
for (int i = 0; i <=5 ; i++)
{
//zrób coś
}
Pętla ta służy do wykonywania instrukcji kilka razy aż wartość zmiennej użytej w warunku od wartości w „inicjatorze” osiągnie wartość w „warunku”.
Instrukcję break; możemy stosować we wszystkich powyższych pętlach co spowoduje przerwanie najbardziej wewnętrznej pętli (jeżeli jest jedna – to wogóle przerwie wykonywanie jej)
#include<iostream>
using namespace std;
int main()
{
int x;
for (x = 11 ; x <= 20 ; x++)
{
if (x%5 == 0)
{
cout << "Znaleźliśmy X podzielny przez 5: " << x << endl;
break;
}
cout << "X" << endl;
}
}
Powyższa pętla zostanie przerwana jeżeli wartość zmiennej x podzieli się przez 5 bez reszty (% zwraca resztę z dzielenia) tj. podzieli się przez daną liczbę Pętla przerwana zostanie na liczbie 15…
Źródło: http://www.linux.rk.edu.pl/w/p/ptle-i-instrukcje-warunkowe/
Autor: Łukasz Motyka, Kamil Janiga