CodeGym /Kurslar /C# SELF /bool məntiqi tipi və məntiqi əməliyyatlar

bool məntiqi tipi və məntiqi əməliyyatlar

C# SELF
Səviyyə, Dərs
Mövcuddur

1. Məntiqi məlumat tipi: bool

Artıq görmüsən ki, C#-da çox faydalı bir operator var — if-else. Əgər mötərizədəki şərt doğrudursa, bir blok əmri, əks halda başqa bir blok əmri icra edir.

Doğru və ya yanlış ola bilən ifadələrlə işləmək rahat olsun deyə, C#-da xüsusi bir tip əlavə edilib — bool. Onun əsas xüsusiyyəti odur ki, bu tipdə olan dəyişənlər cəmi iki dəyər ala bilər: true (doğru) və false (yanlış).

bool tipli dəyişənə başqa heç bir dəyər vermək mümkün deyil. Kompilyator buna icazə verməyəcək.

bool tipli dəyişən nümunələri:

bool isAdult = true;
bool hasMoney = false;
bool tipli dəyişənlərin elan olunması nümunəsi

bool tipli dəyişənin cəmi iki dəyəri var — true (doğru) və false (yanlış). Vəssalam! Demək olar ki, uğurlu test kimi — ya "keçdi", ya da "yıxıldı" (oops).

2. Müqayisə əməliyyatları

Bəs bu qədər primitiv tip nəyə lazımdır? bool-un əsl gücü məntiqi ifadələr quranda ortaya çıxır. Adətən onlar müqayisə operatorları ilə alınır.

Operator Təyinatı Nümunə Dəyər
== Bərabərdir
a == b
true və ya false
!= Bərabər deyil
a != b
true və ya false
> Böyükdür
a > b
true və ya false
< Kiçikdir
a < b
true və ya false
>= Böyük və ya bərabərdir
a >= b
true və ya false
<= Kiçik və ya bərabərdir
a <= b
true və ya false

Nümunə:

int age = 20;
bool isAdult = age >= 18;   // true (20 böyük və ya bərabərdir 18)
bool isTeenager = age >= 13 && age < 18; // false (20 18-dən kiçik deyil)
bool isEven = age % 2 == 0; // true (20 2-yə tam bölünür)

isAdult burada true olacaq, çünki 20 — həqiqətən də "böyüklər" yaşıdır.

Vacib məqam 1:

İki simvoldan ibarət operatorları ayırmaq olmaz.


a < = 10
speed > = max
age = = 18
time ! = 0
Belə yazmaq olmaz! Müqayisə operatorları birləşik olmalıdır: <=, >=, ==, !=

Vacib məqam 2:

Diqqət et, => və =< operatorları yoxdur: yalnız <= və >= var. Əgər a =< 3 yazsan, kodun sadəcə kompilyasiya olunmayacaq.

Vacib məqam 3:

C#-da 18 < age < 65 tipli ifadə yaza bilməzsən. Çünki 18 < age ifadəsinin dəyəri true və ya false olacaq. true < 65 (fərqli tiplər) müqayisə etmək olmaz. Ən azı, C# dilində.

3. Məntiqi əməliyyatlar

C# dilində 18 < age < 65 ifadəsini yaza bilməzsən — bu sintaksis baxımından səhvdir və proqram kompilyasiya olunmayacaq.

Amma belə yaza bilərsən:


(18 < age) VƏ (age < 65)
İki şərtli məntiqi ifadə (azərbaycanca)

Təbii ki, VƏ sözünün yerində başqa məntiqi operator olacaq və indi onlar haqqında daha ətraflı danışacağıq.

C#-da üç məntiqi operator var: AND (və), OR (və ya), NOT (deyil).

Yaxşı xəbər: mötərizələrdən istifadə edərək istənilən mürəkkəblikdə məntiqi ifadələr qurmaq olar.
Pis xəbər: C# proqramçıları and, or və not sözləri əvəzinə C++ dilindən gələn işarələrdən istifadə etməyə qərar veriblər.

Məntiqi operator Gözlənilən Reallıq
VƏ (∧) and &&
VƏ YA (∨) or ||
DEYİL (¬) not !

Budur, C#-da məntiqi operatorların istifadəsinə bir neçə nümunə:

İfadə Açması İzah
(0 < a) && (a < 100) (0 < a) and (a < 100) (0 < a) VƏ (a < 100)
(!a) && (!b) (not a) and (not b) (DEYİL a) VƏ (DEYİL b)
!(!a || !b) not((not a) or (not b)) DEYİL((DEYİL a) VƏ YA (DEYİL b))

4. Həqiqət cədvəlləri

Qısa olaraq məntiqi əməliyyatlara baxaq.

AND operatoru

AND operatoru, yəni VƏ, həmçinin &&, konjunksiyadır, məntiqi vurmadır.

İfadə Nəticə
true && true true
true && false false
false && true false
false && false false

Başqa sözlə, ifadənin nəticəsi yalnız hər iki dəyər true (doğru) olduqda true (doğru) olur. Qalan hallarda həmişə false (yanlış).

OR operatoru

OR operatoru, yəni VƏ YA, həmçinin ||, disjunksiyadır, məntiqi toplama.

İfadə Nəticə
true || true true
true || false true
false || true true
false || false false

Başqa sözlə, ifadənin nəticəsi həmişə true (doğru) olur, əgər iştirak edən dəyərlərdən ən azı biri true (doğru) olsa. Hər ikisi false olarsa, nəticə false olur.

NOT operatoru

NOT operatoru, yəni DEYİL, həmçinin !, inversiyadır.

İfadə Nəticə
! true false
! false true

true-u false-a və əksinə çevirir.

Faydalı ifadələr:

İfadə Nəticə
m && !m false
m || !m true
!(a && b) !a || !b
!(a || b) !a && !b

5. Məntiqi əməliyyat nümunələri: and, or, not

"VƏ" əməliyyatı, AND, && ilə işarələnir

Nəticə yalnız hər iki dəyişən doğru olduqda doğrudur.

int age = 16;
bool hasTicket = true;
bool canAttend = age >= 14 && hasTicket; // true (16 14-dən böyük VƏ bilet var)

Əgər sənə 14 yaşın var VƏ biletin varsa — keç!

"VƏ YA" əməliyyatı, OR, (||) ilə işarələnir

Nəticə, ən azı bir şərt doğru olduqda doğrudur.

bool isAdmin = false;
bool isModerator = true;
bool canEdit = isAdmin || isModerator; // true (redaktə etmək olar, əgər bunlardan hər hansı biri true-dursa)

Əgər sən adminsən VƏ YA moderatorsansa — buyur, düymələri bas!

"DEYİL" əməliyyatı, NOT, (!) ilə işarələnir

İnvertor doğruyu yanlışa, yanlışı doğruya çevirir.

bool isWeekend = false;
bool shouldGoToWork = !isWeekend; // true (əgər istirahət günü deyil, işləyirik)

Əgər DEYİL istirahət günüdürsə — durmaq vaxtıdır!

Kombinasiya: istədiyin qədər şərt qur

İstədiyin qədər məntiqi əməliyyatları birləşdirə bilərsən (amma həddini aşma, yoxsa "əgər o DEYİL DEYİL DEYİL admin..." kimi bir şey alınar). Mötərizələrdən istifadə etmək olar (və lazımdır!) ki, kod aydın olsun.

Nümunə:

int age = 17;
bool hasTicket = false;
bool isVip = true;

bool canGo = (age >= 18 && hasTicket) || isVip; // true, çünki isVip = true

Bu nümunədə məntiq belədir: əgər şəxs yetkin və bileti varsa, ya da VIP-dirsə — buraxırıq. Əgər VIP deyil — yalnız böyüksə və bileti varsa buraxırıq.

2
Tapşırıq
C# SELF, səviyyə, dərs
Bağlanıb
Yetkinlik və status yoxlanışı
Yetkinlik və status yoxlanışı
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION