Darsliklar C Mantiqiy (Boolean)

C C Mantiqiy (Boolean)

Mantiqiy (Boolean) qiymatlar kichik ko’rinsa-da, dasturlashning yuragi hisoblanadi. Har bir shart, har bir tekshiruv ikki qiymatga tayanadi: rost yoki yolg’on. C’ning o’ziga xosligi shundaki, u dastlab maxsus bool turiga ega emas edi — mantiqiy qiymatlar sonlar bilan ifodalanadi.

Mantiqiy qiymatrost yoki yolg’on holatni bildiruvchi qiymat. C’da 0 — yolg’on, nolga teng bo’lmagan har qanday son — rost hisoblanadi.

C’da rost va yolg’on

C’da mantiqiy qiymatlar sonlar orqali ifodalanadi: 0 — yolg’on, qolgani — rost:

#include <stdio.h>

int main(void) {
    int rost = 1;
    int yolgon = 0;
    printf("Rost: %d\n", rost);
    printf("Yolg'on: %d\n", yolgon);
    return 0;
}
Rost: 1
Yolg'on: 0

An’anaviy C’da mantiqiy holat uchun int ishlatiladi. 0 yolg’on, 1 (yoki boshqa har qanday nolga teng bo’lmagan son) rost hisoblanadi.

stdbool.h — zamonaviy bool

C99 standartidan boshlab stdbool.h kutubxonasi haqiqiy bool turini beradi:

#include <stdio.h>
#include <stdbool.h>

int main(void) {
    bool faol = true;
    bool ochirilgan = false;
    printf("%d %d\n", faol, ochirilgan);
    return 0;
}
1 0

stdbool.h ni ulagach, bool, true va false so’zlarini ishlatish mumkin. Ekranga esa ular baribir 1 va 0 bo’lib chiqadi, chunki ichida son sifatida saqlanadi.

Solishtirish natijasi

Har qanday solishtirish amali 1 yoki 0 qaytaradi. Solishtirish operatorlarini jadvalda ko’ramiz:

Operator Ma’nosi Misol Natija
== teng 5 == 5 1
!= teng emas 5 != 3 1
> katta 5 > 8 0
< kichik 5 < 8 1
>= katta yoki teng 5 >= 5 1

Amalda:

#include <stdio.h>

int main(void) {
    int yosh = 26;
    int voyaga = yosh >= 18;
    printf("Voyaga yetgan: %d\n", voyaga);
    return 0;
}
Voyaga yetgan: 1

Shartlarda ishlatilishi

C’ning “nolga teng bo’lmagan — rost” qoidasi shartlarda qulay ishlatiladi:

#include <stdio.h>

int main(void) {
    int son = 5;
    if (son) {   /* son 0 bo'lmasa, rost */
        printf("Son nolga teng emas\n");
    }
    return 0;
}
Son nolga teng emas

if (son)son nolga teng bo’lmagani uchun shart rost bo’ldi. Bu C’ning keng ishlatiladigan idiomasi.

Xulosa

Bu bo’limda C’da mantiqiy qiymatlarni (0 va nolga teng bo’lmagan sonlar), stdbool.h bilan bool turini, solishtirish natijalari va “nolga teng bo’lmagan — rost” qoidasini ko’rib chiqdik. Keyingi darsda shart operatorlariga o’tamiz.