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.true
Mantiqiy 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
0
ifodalaydifalse
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 x = 10;
int y = 9;
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 isHamburgerTasty = true;
bool isPizzaTasty = true;
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...else
bayonotga 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.