Барномаҳое, ки мо дар дарсҳои гузашта дидем сохтори пайдарпайро соҳибанд. Яъне ҳамаи амалҳои дар онҳо навишта шуда аз аввал то охир пайдарпай иҷро карда мешаванд. Тасвири сохтори идоракунандаи пайдарпай:

Оператори if имконият медиҳад, ки вобаста аз иҷро шудан ё иҷро нашудани шарти гузошташуда, барнома ба як қисми код ворид шавад ё нашавад. Яке аз асоситарин вазифаҳои оператори if ин дар асоси маълумоти истифодабаранда дохилнамуда интихоб кардани тарзи рафтори барнома мебошад. Масалан, вобаста аз санаи компютер баровардани ин ё он хабар дар экран, вобаста аз ҷавобҳои дохилнамуда муайян кардани баҳо.

Пеш аз сохтори оператори if-ро таҳлил кардан, иҷозат диҳед, дар бораи TRUE ва FALSE дар мисоли С++ гап занем. TRUE дар С++ ин дилхоҳ адади ғайринулӣ аст. FALSE дар С++ ин нул (0, сифр) аст. Вақте ки барнома ягон муқоисакуниро иҷро мекунад оператор ягон адади ғайринулиро бозмегардонад, агар шарт иҷро шуда бошад. Оператор нулро бозмегардонад, агар шарт иҷро нашуда бошад. Масалан, қимати ифодаи a==5 баробар аст ба 0, агар a ба 5 баробар набошад ва ба ягон адади ғайринулӣ баробар аст, агар a баробари 5 бошад. Агар ба тааҷҷуб афтода бошед, оператори cout-ро барои инъикоси натиҷаи ифодаҳои мантиқии гуногун истифода бурда, таҷрибаҳои гуногун гузаронед (мисол, cout<<(2<5)).

Сохтори оператори if чунин аст:

if(шарт)
оператор;

Ҳангоми қимати шарт ба TRUE баробар шудан, оператор; иҷро карда мешавад. Агар зарур бошад, ки ҳангоми TRUE будани қимати шарт, якчанд операторҳо иҷро карда шаванд, қафсҳои фигуравиро истифода мекунанд:

if(шарт) {
оператор;
.........
оператор;
}

Тасвири сохтори идоракунандаи if:
(интихоби ягона)

Оператори else низ мавҷуд аст. Коди баъди else омада иҷро карда мешавад, агар қимати шарт дар оператори if ба FALSE баробар шавад. Ҳангоми қимати шарт дар оператори if ба TRUE баробар шудан, коди баъди оператори else омада иҷро карда намешавад:

if(шарт) {
оператор11;
...........
оператор1n;
}
else {
оператор21;
...........
оператор2n;
}

Тасвири сохтори идоракунандаи if:
(интихоби дуӣ)

Як мисолро дида мебароем.

//namuna04.cpp 
#include <iostream>
using namespace std;
int main() {
int sol;
cout<<"Shumo chand sola? ";
cin>>sol;
if(sol<17)
cout<<"Shumo holo khele javoned!"<<endl;
else
cout<<"Marhamat namoed!"<<endl;
return 0;
}

Азбаски ҳангоми қимати шарт дар оператори if ба TRUE баробар шудан, коди баъди оператори else омада иҷро карда намешавад, чунин шакли истифодаи оператори if хело машҳур аст:

if(шарти1) {
оператор11;
...........
оператор1n;
}
else if(шарти2) {
оператор21;
...........
оператор2n;
}
else if(шарти3) {
оператор31;
...........
оператор3n;
}
...........

Мисол:

//namuna05.cpp 
#include <iostream>
using namespace std;
int main() {
int sol;
cout<"Shumo chand sola? ";
cin>>sol;
if(sol<17)
cout<<"Shumo holo khele javoned!"<<endl;
else if(sol<70)
cout<<"Shumo holo pir nested!"<<endl;
else if(sol==70)
cout<<"Shumo dar hakikat pir hasted!"<<endl;
else
cout<<"Shumo dar hakikat khelo pir hasted!"<<endl;
return 0;
}

Як мисоли дигар:

using namespace std;
#include <iostream>

int main() {
double order; //order's amount
double discount;
double total;
int percent;

cout<<"Enter Order Amount, please: ";
cin>>order;

if(order<500) {
percent = 0;
}
else if(order < 1000) {
percent = 2;
}
else if(order < 1500) {
percent = 4;
}
else {
percent = 5;
}

discount = order/100*percent;
total = order - discount;

cout<<"Order: "<<order<<endl;
cout<<"Discount Percent: "<<percent<<endl;
cout<<"Discount Amount: "<<discount<<endl;
cout<<"Total: "<<total<<endl;

system("pause");
}

САВОЛҲО БАРОИ МУСТАҲКАМКУНӢ
1. Ба фикри шумо барои чӣ оператори if-else оператори шартӣ номида мешавад?
2. TRUE ва FALSE дар ифодаҳои мантиқӣ чиро мефаҳмонанд?
3. Шартҳо барои оператори if чӣ хел тартиб дода мешаванд?
4. Номи файли матни барномаи С++ чӣ хел кисми изофагӣ дорад?