12 / 90

C++ if, if...else and Nested if...else

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.

  1. agar foiz 90 dan yuqori bo'lsa, A bahosini qo'ying
  2. agar foiz 75 dan yuqori bo'lsa, B bahosini qo'ying
  3. agar foiz 65 dan yuqori bo'lsa, S bahosini qo'ying

C++ if operatori

Sintaksis

example.cpp
if (condition) {
  // if operatorining tanasi
}

if operatori ( ) qavslar ichidagi holatni baholaydi.

  1. Agar shart rost deb baholansa, if korpusidagi kod bajariladi.
  2. Agar shart noto'g'ri deb baholansa, if korpusidagi kod o'tkazib yuboriladi.

[!NOTE] { } ichidagi kod if operatorining asosiy qismidir.

Operator qanday ishlaydi

How if Statement Works

1-misol: C++ if operatori

example.cpp
// 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

kod
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

kod
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.

C++ agar... bo'lmasa

if operatorida ixtiyoriy else bandi bo'lishi mumkin.

Sintaksis

example.cpp
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

How if...else Statement Works

Agar shart rost deb baholansa,

  1. if korpusidagi kod bajariladi
  2. else korpusidagi kod bajarilishdan o'tkazib yuboriladi

Agar shart noto'g'ri deb baholansa,

  1. else korpusidagi kod bajariladi
  2. if korpusidagi kod bajarilishdan o'tkazib yuboriladi

2-misol: C++ if...else Operator

example.cpp
// 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

kod
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

kod
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.

C++ if...else...else if operatori

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

example.cpp
if (condition1) {
  // kod bloki 1
}
else if (condition2){
  // kod bloki 2
}
else {
  // kod bloki 3
}

Bu yerga,

  1. Agar 1-shart rost deb baholansa, code block 1 bajariladi.
  2. Agar 1-shart noto'g'ri deb baholansa, 2-shart baholanadi.
  3. Agar shart 2 rost bo'lsa, code block 2 bajariladi.

Qanday qilib agar...else, agar...else Operator ishlaydi

How if...else if...else Statement Works

[!NOTE] Bir nechta else if operatori bo'lishi mumkin, lekin faqat bitta if va else operatorlari.

3-misol: C++ if...else...else if

example.cpp
// 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

kod
Enter an integer: 1
You entered a positive integer: 1.
This line is always printed.

Chiqish 2

kod
Enter an integer: -2
You entered a negative integer: -2.
This line is always printed.

Chiqish 3

kod
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.

C++ Ichki o'rnatilgan, agar... bo'lmasa

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

example.cpp
// tashqi if operatori
if (condition1) {

  // operatorlar

  // ichki if operatori
  if (condition2) {
    // operatorlar
  }
}

Eslatmalar:

  1. Biz else va else if operatorlarini kerak bo'lganda ichki if operatoriga qo'shishimiz mumkin.
  2. Ichki if operatori tashqi else yoki else if operatorlariga ham kiritilishi mumkin (agar ular mavjud bo'lsa).
  3. Biz if operatorlarining bir nechta qatlamlarini joylashtirishimiz mumkin.

4-misol: C++ ichma-ich if (nested if)

example.cpp
// 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

kod
Enter an integer: 35
The number is positive.
This line is always printed.

Chiqish 2

kod
Enter an integer: -35
The number is negative.
This line is always printed.

Chiqish 3

kod
Enter an integer: 0
The number is 0 and it is neither positive nor negative.
This line is always printed.

Yuqoridagi misolda,

  1. Biz foydalanuvchidan kirish sifatida butun sonni olamiz va uni num o'zgaruvchisida saqlaymiz. 2.Keyin son 0 ga teng emasligini tekshirish uchun 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.
  2. Ichki 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...else makes your logic complicated. If possible, you should always try to avoid nested if...else.

If...else ning asosiy qismi Faqat bitta operator bilan

Agar if...else korpusida faqat bitta operator bo'lsa, dasturda { } ni o'tkazib yuborishingiz mumkin. Masalan, siz almashtirishingiz mumkin

example.cpp
int number = 5;

if (number > 0) {
  cout << "The number is positive." << endl;
}
else {
  cout << "The number is negative." << endl;
}

bilan

example.cpp
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...else korpusida faqat bitta operator bo'lsa, { } dan foydalanish shart bo'lmasa-da, { } dan foydalanish kodingizni o'qishni osonlashtiradi.

Qaror qabul qilish haqida ko'proq

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