C++ if, if...else va ichma-ich if
Kompyuter dasturlashda biz if...else iborasidan ma'lum shartlar ostida bir kod blokini va boshqa kod blokini turli sharoitlarda ishga tushirish uchun foydalanamiz.
Masalan, talaba olgan baholar asosida (A, B, C) baho qo'yish.
Sintaksis
if (condition) {
// if operatorining tanasi
}
if operatori ( ) qavslar ichidagi holatni baholaydi.
if korpusidagi kod bajariladi.if korpusidagi kod o'tkazib yuboriladi.[!NOTE]
{ }ichidagi kodifoperatorining asosiy qismidir.
Operator qanday ishlaydi

// Foydalanuvchi tomonidan kiritilgan ijobiy raqamni chop etish dasturi
// Agar foydalanuvchi salbiy raqamni kiritsa, u o'tkazib yuboriladi
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
// raqam ijobiy yoki yo'qligini tekshiradi
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
cout << "This statement is always executed.";
return 0;
}
Chiqish 1
Enter an integer: 5
You entered a positive number: 5
This statement is always executed.
Foydalanuvchi 5 ga kirganda, number > 0 sharti rost deb baholanadi va if korpusidagi operator bajariladi.
Chiqish 2
Enter a number: -5
This statement is always executed.
Foydalanuvchi -5 ga kirganda, number > 0 sharti noto'g'ri deb baholanadi va if korpusidagi operator bajarilmaydi.
if operatorida ixtiyoriy else bandi bo'lishi mumkin.
Sintaksis
if (condition) {
// agar shart rost bo'lsa kod bloki
}
else {
// agar shart noto'g'ri bo'lsa, kod bloki
}
if..else operatori qavs ichidagi holatni baholaydi.
If... else operatori qanday ishlaydi

Agar shart rost deb baholansa,
if korpusidagi kod bajariladielse korpusidagi kod bajarilishdan o'tkazib yuboriladiAgar shart noto'g'ri deb baholansa,
else korpusidagi kod bajariladiif korpusidagi kod bajarilishdan o'tkazib yuboriladi// Butun sonning musbat yoki manfiy ekanligini tekshirish dasturi
// Bu dastur 0 ni musbat son deb hisoblaydi
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number >= 0) {
cout << "You entered a positive integer: " << number << endl;
}
else {
cout << "You entered a negative integer: " << number << endl;
}
cout << "This line is always printed.";
return 0;
}
Chiqish 1
Enter an integer: 4
You entered a positive integer: 4.
This line is always printed.
Yuqoridagi dasturda bizda number >= 0 sharti mavjud. Agar biz 0 dan katta yoki teng sonni kiritsak, u holda shart rost deb baholanadi.
Bu erda biz 4 ni kiritamiz. Demak, shart to'g'ri. Shunday qilib, if korpusidagi operator bajariladi.
Chiqish 2
Enter an integer: -4
You entered a negative integer: -4.
This line is always printed.
Bu erda biz -4 ni kiritamiz. Demak, shart noto'g'ri. Shunday qilib, else korpusidagi operator bajariladi.
if...else operatori ikkita muqobil kod blokini bajarish uchun ishlatiladi. Biroq, agar biz ikkitadan ko'proq alternativa o'rtasida tanlov qilishimiz kerak bo'lsa, biz if...else if...else operatoridan foydalanamiz.
Sintaksis
if (condition1) {
// kod bloki 1
}
else if (condition2){
// kod bloki 2
}
else {
// kod bloki 3
}
Bu yerga,
code block 1 bajariladi.code block 2 bajariladi.Qanday qilib agar...else, agar...else Operator ishlaydi

[!NOTE] Bir nechta
else ifoperatori bo'lishi mumkin, lekin faqat bittaifvaelseoperatorlari.
// Butun sonning musbat, manfiy yoki nol ekanligini tekshirish dasturi
#include <iostream>
using namespace std;
int main() {
int number;
cout << "Enter an integer: ";
cin >> number;
if (number > 0) {
cout << "You entered a positive integer: " << number << endl;
}
else if (number < 0) {
cout << "You entered a negative integer: " << number << endl;
}
else {
cout << "You entered 0." << endl;
}
cout << "This line is always printed.";
return 0;
}
Chiqish 1
Enter an integer: 1
You entered a positive integer: 1.
This line is always printed.
Chiqish 2
Enter an integer: -2
You entered a negative integer: -2.
This line is always printed.
Chiqish 3
Enter an integer: 0
You entered 0.
This line is always printed.
Ushbu dasturda biz foydalanuvchidan raqam olamiz. Keyin biz if...else if...else zinapoyasidan foydalanib, raqam ijobiy, salbiy yoki nol ekanligini tekshiramiz.
Agar raqam 0 dan katta bo'lsa, if blokidagi kod bajariladi. Agar raqam 0 dan kichik bo'lsa, else if blokidagi kod bajariladi. Aks holda, else blokidagi kod bajariladi.
Ba'zan biz boshqa if operatorida if operatoridan foydalanishimiz kerak. Bu ichki if operatori sifatida tanilgan.
Buni if operatorlarining bir nechta qatlamlari sifatida tasavvur qiling. Birinchi, tashqi if operatori mavjud va uning ichida boshqa, ichki if operatori mavjud.
Sintaksis
// tashqi if operatori
if (condition1) {
// operatorlar
// ichki if operatori
if (condition2) {
// operatorlar
}
}
Eslatmalar:
else va else if operatorlarini kerak bo'lganda ichki if operatoriga qo'shishimiz mumkin.if operatori tashqi else yoki else if operatorlariga ham kiritilishi mumkin (agar ular mavjud bo'lsa).if operatorlarining bir nechta qatlamlarini joylashtirishimiz mumkin.// Butun sonning musbat, manfiy yoki nol ekanligini aniqlash uchun C++ dasturi
// nested if iboralaridan foydalanish
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Enter an integer: ";
cin >> num;
// tashqi holat
if (num != 0) {
// ichki holat
if (num > 0) {
cout << "The number is positive." << endl;
}
// boshqa ichki holat
else {
cout << "The number is negative." << endl;
}
}
// tashqi boshqa holat
else {
cout << "The number is 0 and it is neither positive nor negative." << endl;
}
cout << "This line is always printed." << endl;
return 0;
}
Chiqish 1
Enter an integer: 35
The number is positive.
This line is always printed.
Chiqish 2
Enter an integer: -35
The number is negative.
This line is always printed.
Chiqish 3
Enter an integer: 0
The number is 0 and it is neither positive nor negative.
This line is always printed.
Yuqoridagi misolda,
if...else operatoridan foydalanamiz. Agar rost bo'lsa, ichki if...else operatori bajariladi. Agar noto'g'ri bo'lsa, "The number is 0 and it is neither positive nor negative." ni chop etadigan tashqi else sharti ichidagi kod bajariladi.if...else iborasi kiritilgan raqamning musbat ekanligini tekshiradi, ya'ni agar raqam 0 dan katta bo'lsa. Agar rost bo'lsa, u holda raqam ijobiy degan operatorni chop etamiz. Agar noto'g'ri bo'lsa, biz raqam manfiy ekanligini chop qilamiz.[!NOTE] As you can see, nested
if...elsemakes your logic complicated. If possible, you should always try to avoid nestedif...else.
Agar if...else korpusida faqat bitta operator bo'lsa, dasturda { } ni o'tkazib yuborishingiz mumkin. Masalan, siz almashtirishingiz mumkin
int number = 5;
if (number > 0) {
cout << "The number is positive." << endl;
}
else {
cout << "The number is negative." << endl;
}
bilan
int number = 5;
if (number > 0)
cout << "The number is positive." << endl;
else
cout << "The number is negative." << endl;
Ikkala dasturning chiqishi ham bir xil bo'ladi.
[!NOTE]
if...elsekorpusida faqat bitta operator bo'lsa,{ }dan foydalanish shart bo'lmasa-da,{ }dan foydalanish kodingizni o'qishni osonlashtiradi.
Uchlik operator shartga asoslangan ikkita ifodadan birini bajarish uchun ishlatiladigan ixcham, inline usuldir. Qo'shimcha ma'lumot olish uchun C++ Ternary Operator ga tashrif buyuring.
Agar berilgan sinov sharti asosida bir nechta muqobillar oʻrtasida tanlov qilishimiz kerak boʻlsa, switch operatoridan foydalanish mumkin. Batafsil ma’lumot olish uchun C++ switch ga tashrif buyuring.
Shuningdek o'qing:
1.C++ Program to Check Whether Number is Even or Odd 2.C++ Program to Check Whether a Character is Vowel or Consonant. 3.C++ Program to Find Largest Number Among Three Numbers