6. if va else — shartlar

Oldingi bo‘limda operatorlar bilan tanishdik.

Masalan:

int yosh = 18;

Endi dasturga savol berishni o‘rganamiz.

Masalan:

Agar yosh 18 yoki undan katta bo‘lsa, ekranga nima chiqaramiz?

Buning uchun if ishlatiladi.


if nima?

if ingliz tilida "agar" degan ma'noni anglatadi.

C tilida if yordamida shart tekshiriladi.

Oddiy ko‘rinishi:

if (shart) {
    // kod
}

Masalan:

int yosh = 18;

if (yosh >= 18) {
    printf("Siz voyaga yetgansiz.");
}

Bu dastur:

yosh 18 yoki undan katta bo‘lsa, xabarni chiqar.

degan ma'noni anglatadi.

Natija:

Siz voyaga yetgansiz.

if qanday ishlaydi?

Quyidagi kodga qarang:

int yosh = 20;

if (yosh >= 18) {
    printf("Voyaga yetgan.");
}

Dastur quyidagicha ishlaydi:

yosh = 20

20 >= 18 ?
     ↓
    Ha
     ↓
"Voyaga yetgan." chiqariladi

Agar shart to‘g‘ri bo‘lsa, { va } orasidagi kod bajariladi.


Shart noto‘g‘ri bo‘lsa

Masalan:

int yosh = 15;

if (yosh >= 18) {
    printf("Voyaga yetgan.");
}

Bu yerda:

15 >= 18

noto‘g‘ri.

Shuning uchun printf() ishlamaydi.

Dastur hech narsa chiqarmaydi.


else nima?

Ba'zan shart to‘g‘ri bo‘lmasa, boshqa kodni bajarishimiz kerak.

Buning uchun else ishlatiladi.

else"aks holda" degan ma'noni anglatadi.

Masalan:

int yosh = 15;

if (yosh >= 18) {
    printf("Voyaga yetgan.");
} else {
    printf("Voyaga yetmagan.");
}

Natija:

Voyaga yetmagan.

if va else qanday ishlaydi?

Dasturimiz:

if (yosh >= 18) {
    printf("Voyaga yetgan.");
} else {
    printf("Voyaga yetmagan.");
}

quyidagicha ishlaydi:

Shart to‘g‘rimi?
       |
   ┌───┴───┐
  Ha       Yo‘q
   |         |
if kodi   else kodi

Ya'ni:

  • shart to‘g‘ri bo‘lsa → if ishlaydi;
  • shart noto‘g‘ri bo‘lsa → else ishlaydi.

> operatori bilan if

if ichida turli taqqoslash operatorlaridan foydalanish mumkin.

Masalan:

int son = 10;

if (son > 5) {
    printf("Son 5 dan katta.");
}

Natija:

Son 5 dan katta.

< operatori bilan if

int son = 3;

if (son < 10) {
    printf("Son 10 dan kichik.");
}

Natija:

Son 10 dan kichik.

== operatori bilan if

Ikki qiymat tengligini tekshirish uchun == ishlatiladi.

Masalan:

int son = 10;

if (son == 10) {
    printf("Son 10 ga teng.");
}

Natija:

Son 10 ga teng.

Bu yerda:

==

"tengmi?" degan savolni beradi.


!= operatori

!= ikki qiymat teng emasligini tekshiradi.

Masalan:

int son = 10;

if (son != 5) {
    printf("Son 5 ga teng emas.");
}

Natija:

Son 5 ga teng emas.

else if

Ba'zan ikkita emas, bir nechta shartni tekshirishimiz kerak.

Bunday holatda else if ishlatiladi.

Masalan:

int ball = 80;

if (ball >= 90) {
    printf("A");
} else if (ball >= 70) {
    printf("B");
} else {
    printf("C");
}

Bu dasturda:

90 yoki undan yuqori → A
70 yoki undan yuqori → B
qolgan holatlar      → C

ball 80 bo‘lgani uchun:

B

chiqadi.


Bir nechta else if

Istalgancha else if ishlatish mumkin.

Masalan:

int ball = 65;

if (ball >= 90) {
    printf("A");
} else if (ball >= 80) {
    printf("B");
} else if (ball >= 70) {
    printf("C");
} else if (ball >= 60) {
    printf("D");
} else {
    printf("F");
}

Natija:

D

bo‘ladi.


Shartlar tartibi muhim

if va else if yuqoridan pastga qarab tekshiriladi.

Masalan:

int ball = 95;

if (ball >= 60) {
    printf("D");
} else if (ball >= 90) {
    printf("A");
}

Natija:

D

bo‘ladi.

Nega?

Chunki birinchi shart:

95 >= 60

to‘g‘ri.

Shuning uchun dastur keyingi else if ga o'tmaydi.

To‘g‘ri tartib:

if (ball >= 90) {
    printf("A");
} else if (ball >= 60) {
    printf("D");
}

Oddiy yosh tekshirish dasturi

Keling, kichik dastur yozamiz:

#include <stdio.h>

int main() {
    int yosh = 20;

    if (yosh >= 18) {
        printf("Siz voyaga yetgansiz.");
    } else {
        printf("Siz voyaga yetmagansiz.");
    }

    return 0;
}

Natija:

Siz voyaga yetgansiz.

yoshni:

int yosh = 15;

qilsak, natija:

Siz voyaga yetmagansiz.

bo‘ladi.


Juft yoki toq son

if yordamida sonning juft yoki toq ekanini ham aniqlash mumkin.

Buning uchun % operatoridan foydalanamiz.

#include <stdio.h>

int main() {
    int son = 10;

    if (son % 2 == 0) {
        printf("Juft son.");
    } else {
        printf("Toq son.");
    }

    return 0;
}

Natija:

Juft son.

Chunki:

10 % 2 = 0

Agar son:

int son = 7;

bo‘lsa, natija:

Toq son.

bo‘ladi.


if ichida bir nechta kod

if ichida faqat bitta buyruq emas, bir nechta buyruq yozish mumkin.

Masalan:

int yosh = 20;

if (yosh >= 18) {
    printf("Voyaga yetgan.\n");
    printf("Siz dasturdan foydalanishingiz mumkin.");
}

Natija:

Voyaga yetgan.
Siz dasturdan foydalanishingiz mumkin.

Ichma-ich if

Bir if ichida yana boshqa if yozish mumkin.

Masalan:

int yosh = 20;

if (yosh >= 18) {
    if (yosh < 60) {
        printf("Siz katta yoshdagi odamsiz.");
    }
}

Hozircha bunday kodlarni ko‘p ishlatmaymiz.

Oddiy if va else ni yaxshi tushunish muhimroq.


Amaliy mashqlar

1-mashq

Quyidagi dasturdagi yosh qiymatini o‘zgartirib ko‘ring:

int yosh = 15;

if (yosh >= 18) {
    printf("Kirish mumkin.");
} else {
    printf("Kirish mumkin emas.");
}

18 dan kichik va katta qiymatlar bilan tekshirib ko‘ring.


2-mashq

Sonning musbat yoki manfiy ekanini aniqlaydigan dastur yozing.

Masalan:

son = 10

Natija:

Musbat son

bo‘lishi kerak.


3-mashq

Son juft yoki toq ekanini aniqlaydigan dastur yozing.

Masalan:

son = 7

Natija:

Toq son

bo‘lishi kerak.


4-mashq

Ballga qarab baho chiqaradigan dastur yozing:

90-100 → A
80-89  → B
70-79  → C
60-69  → D
0-59   → F

5-mashq

Quyidagi kod nima chiqaradi?

int son = 25;

if (son > 30) {
    printf("A");
} else {
    printf("B");
}

Avval javobni o‘ylang, keyin dasturni ishga tushirib tekshiring.


Muhim narsalarni eslab qoling

if:

if (shart) {
    // shart to‘g‘ri bo‘lsa
}

else:

if (shart) {
    // to‘g‘ri
} else {
    // noto‘g‘ri
}

Bir nechta shart:

if (shart1) {

} else if (shart2) {

} else {

}

Eng ko‘p ishlatiladigan taqqoslash operatorlari:

>    katta
<    kichik
>=   katta yoki teng
<=   kichik yoki teng
==   teng
!=   teng emas

Xulosa

if dasturga qaror qabul qilish imkonini beradi.

Masalan:

if (yosh >= 18) {
    printf("Kirish mumkin.");
} else {
    printf("Kirish mumkin emas.");
}

Bu yerda dastur yoshga qarab ikki xil natijadan birini tanlaydi.