Ифода дар if танҳо муқоиса ё амали мантиқӣ шуда наметавонад. Муҳим он аст, ки натиҷаи он ҳақ ё дурӯғ шавад. Дар C++ ҳар адади ғайрисифр – ҳақ, сифр – дурӯғ аст.
Мисоли 2. Ду адади a,b-ро хонда, a/b-ро ҳисоб мекунем. Агар b=0 бошад, тақсим ма'no надорад. (Ба a ва b қимати аввала додем, то барнома дар лаборатория бе вуруд ҳам нашикана.)
Натиҷа:
Ҳамин барнома барои b=0:
Натиҷа:
Дар if (b) шарт ҳақ аст, агар b ғайрисифр бошад. Ин ба if (b != 0) баробарқувва аст: ҳар ду шакл як натиҷа медиҳанд.
if-и дохилӣ
Оператори if метавонад дар дохили if дигар ҷойгир шавад.
Мисоли 3. Аз се адади натуралии a,b,c калонтаринро меёбем:
Натиҷа:
Қадам ба қадам барои a=3,b=7,c=5:
Калонтарин аз се адад
C++
1if (a > b) {a= 3b= 7
2if (a > c) max = a;
3else max = c;
4} else {
5if (b > c) max = b;
6else max = c;
7}
a > b ?
сатр 1
3 > 7 нодуруст аст. Ба блоки else мегузарем.
a3b7c5max-
пахш кун
1 / 3
Ду барнома, ки фақат як ҷуфт { } фарқ доранд:
Натиҷа:
Дар барномаи якум else ба if (b > 0) тааллуқ дорад, барои ҳамин B чоп шуд. Агар if (b > 0)-ро ба блок гирем, else ба if (a > 0) мепайвандад:
Инҷо a > 0 ҳақ аст, пас else иҷро намешавад ва ҳеҷ чиз чоп намешавад (танҳо сатри нав).
Зинаи else if
Барои чанд интихоб else if-ро якбар-якбар менависанд: шартҳо аз боло ба поён санҷида мешаванд ва аввалинаш ҳақ бударо иҷро мекунанд.
Барои ҷавоб додан ва нигоҳ доштани пешрафт ворид шавед.Ворид шудан
x
<
0
,
0≤x≤10,
x>10.
x = 2
y = 10
a = 7
b = 2
a/b = 3.5
a = 7
b = 0
Taqsim ma'no nadorad
3
7
5
Maximum: 7
B
x = 4
y = -40
x = -20
y = 5
a = 1
b = -3
c = 2
x1 = 2
x2 = 1
a = 1
b = 2
c = 1
x = -1
a = 1
b = 0
c = 1
Muodila hal nadorad
#include <iostream>using namespace std;int main(){ float x, y; cout << "x = "; cin >> x; if(x <= 1) y = x * x; else y = 3 * x + 4; cout << "y = "<< y << "\n"; return 0;}
#include <iostream>using namespace std;int main(){ double a = 0, b = 1; cout << "a = "; cin >> a; cout << "b = "; cin >> b; if(b) cout << "a/b = "<< a / b << "\n"; else cout << "Taqsim ma'no nadorad\n"; return 0;}
#include <iostream>using namespace std;int main(){ int a, b, c, max; cin >> a >> b >> c; if(a > b){ if(a > c) max = a; else max = c;} else{ if(b > c) max = b; else max = c;} cout << "Maximum: "<< max << "\n"; return 0;}
#include <iostream>using namespace std;int main(){ int a = 1, b = 0; if(a > 0) if(b > 0) cout << "A"; else cout << "B"; cout << "\n"; return 0;}
#include <iostream>using namespace std;int main(){ int a = 1, b = 0; if(a > 0){ if(b > 0) cout << "A";} else cout << "B"; cout << "\n"; return 0;}
#include <iostream>using namespace std;int main(){ int x; float y; cout << "x = "; cin >> x; if(x < -10) y = 5; else if(x < 0) y = 15 * x; else if(x <= 10) y = -3 * x * x + 8; else y = x * x + 3 * x + 9; cout << "y = "<< y << "\n"; return 0;}