C Mantiqiy (Boolean)

Ko'pincha, dasturlashda sizga ikkita qiymatdan faqat bittasiga ega bo'lishi mumkin bo'lgan ma'lumotlar turi kerak bo'ladi, masalan:

  • HA YO'Q
  • ON / OFF
  • TO'G'RI / YOLG'ON

Buning uchun C ma'lumotlar turiga ega bo'lib, u mantiqiybool deb nomlanadi.trueMantiqiy qiymatlar yoki bo'lgan qiymatlarni ifodalaydi false

Mantiqiy o'zgaruvchilar

C da bu tur yoki bool kabi o'rnatilgan ma'lumotlar turi emas. intchar U C99 da taqdim etilgan va undan foydalanish uchun quyidagi sarlavha faylini import qilishingiz kerak:

#include <stdbool.h>

Mantiqiy o'zgaruvchi bool kalit so'z bilan e'lon qilinadi va faqat true yoki quyidagi qiymatlarni qabul qilishi mumkin false:

bool isProgrammingFun = true;
bool isFishTasty = false;

Mantiqiy o'zgaruvchilarni chop etishga urinishdan oldin, mantiqiy qiymatlar butun son sifatida qaytarilishini bilishingiz kerak:

  • 1(yoki 0 bo'lmagan boshqa raqam) ifodalayditrue
  • 0ifodalaydifalse

Shuning uchun, %d mantiqiy qiymatni chop etish uchun format spetsifikatsiyasidan foydalanishingiz kerak:

Misol

bool isProgrammingFun = true;
bool isFishTasty = false;

printf("%d", isProgrammingFun);   //true
printf("%d", isFishTasty);        // false

Biroq, qiymatlar va o'zgaruvchilarni taqqoslash orqali mantiqiy qiymatni qaytarish odatiy holdir.

Qiymatlar va o'zgaruvchilarni solishtirish

Qiymatlarni solishtirish dasturlashda foydalidir, chunki u bizga javob topish va qaror qabul qilishda yordam beradi. Masalan, ikkita qiymatni solishtirish uchun ( ) dan katta operator kabi taqqoslash operatoridan foydalanishingiz mumkin:

Misol

printf("%d"10 > 9);  // true

Yuqoridagi misoldan siz qaytariladigan qiymat mantiqiy qiymat ekanligini ko'rishingiz mumkin. Shuningdek, siz ikkita o'zgaruvchini solishtirishingiz mumkin:

Misol

int x10;
int y9;
printf("%d", x > y);

Quyidagi misolda biz turli qiymatlarni solishtirish uchun teng ( ) operatoridan foydalanamiz:

Misol

printf("%d"10 == 10); // true
printf("%d"10 == 15); //  false
printf("%d"5 == 55);  // false

Siz faqat raqamlarni solishtirish bilan cheklanmaysiz. Shuningdek, siz mantiqiy o'zgaruvchilarni yoki hatto massivlar kabi maxsus tuzilmalarni solishtirishingiz mumkin (bu haqda keyingi darslarda ko'proq bilib olasiz):

Misol

bool isHamburgerTastytrue;
bool isPizzaTastytrue;
printf("%d", isHamburgerTasty == isPizzaTasty);

O'zgaruvchilar <stdbool.h> bilan ishlashda sarlavha faylini qo'shishni unutmang.

Haqiqiy hayot misoli

Keling, "haqiqiy hayot misoli" haqida o'ylab ko'raylik, bu erda biz odamning ovoz berish yoshiga etganligini aniqlashimiz kerak. Quyidagi misolda yosh ( ) dan kattaroq yoki ovoz berish yoshi chegarasiga teng>= yoki teng yoki yo‘qligini aniqlash uchun taqqoslash operatoridan foydalanamiz.

Misol

int myAge = 25;
int votingAge = 18;

printf("%d", myAge >= votingAge); // Returns 1 (true), meaning 25 year olds are allowed to vote!

Ajoyib, to'g'rimi? Bundan ham yaxshiroq yondashuv (biz hozir harakatdamiz) yuqoridagi kodni if...elsebayonotga o'rash bo'lar edi, shuning uchun biz natijaga qarab turli xil harakatlarni bajarishimiz mumkin:

Misol

Chiqish "Ovoz berish uchun etarlicha yosh!" dan katta yokimyAge teng bo'lsa . Aks holda "Ovoz berish uchun yosh emas." 

int myAge = 25;
int votingAge = 18;

if (myAge >= votingAge) {
  printf("Ovoz berish uchun etarlicha yosh!");
} else {
 printf("Ovoz berish uchun yosh emas." );
}

Mantiqiy qiymatlar barcha taqqoslash va shartlar uchun asosdir.Keyingi darslarda shartlar (if...else) haqida ko'proq bilib olasiz.