1. Məntiqi məlumat tipi: boolean
Artıq gördüyümüz kimi, Java-da çox faydalı bir operator var — if-else. Mötərizələrdəki şərt doğru olduqda bir əmrlər blokunu, şərt yalnış olduqda isə ikinci əmrlər blokunu icra edir.
Doğru və ya yalnış ola bilən ifadələrlə rahat işləmək üçün Java-da xüsusi bir tip — boolean əlavə edilib. Onun əsas xüsusiyyəti ondan ibarətdir ki, bu tipin dəyişənləri cəmi iki dəyər ala bilər: true (doğru) və false (yalan).
Başqa heç bir dəyəri boolean tipli dəyişənlərə mənimsətmək mümkün deyil. Kompilyator buna icazə verməyəcək.
boolean tipli dəyişən nümunələri:
boolean isAdult = true;
boolean hasMoney = false;
boolean tipli dəyişənin cəmi iki dəyəri var — true və false. Vəssalam! Uğurlu test kimi — ya “keçdi”, ya da “uğursuz oldu”.
2. Müqayisə əməliyyatları
Bəs belə primitiv tip nə üçün lazımdır? booleanın real gücü biz məntiqi ifadələr quranda üzə çıxır. Adətən bunlar müqayisə operatorları ilə alınır.
| Operator | Mənası | Nümunə | Dəyər |
|---|---|---|---|
| == | Bərabərdir | |
true və ya false |
| != | Bərabər deyil | |
true və ya false |
| > | Böyüktür | |
true və ya false |
| < | Kiçikdir | |
true və ya false |
| >= | Böyük və ya bərabərdir | |
true və ya false |
| <= | Kiçik və ya bərabərdir | |
true və ya false |
Nümunə:
int age = 20;
boolean isAdult = age >= 18; // true (20 18-dən böyük və ya bərabərdir)
boolean isTeenager = age >= 13 && age < 18; // false (20 18-dən kiçik deyil)
boolean isEven = age % 2 == 0; // true (20 2-yə qalıqsız bölünür)
Burada isAdult true olacaq, çünki 20 — doğrudan da yetkin yaşdır.
Vacib məqam 1:
İki simvoldan ibarət operatorları parçalamaq olmaz.
a < = 10
speed > = max
age = = 18
time ! = 0
Vacib məqam 2:
Nəzərə alın ki, => və =< operatorları yoxdur: yalnız <= və >= var. Əgər a =< 3 yazsanız, kodunuz sadəcə kompilyasiya olunmayacaq.
Vacib məqam 3:
Java-da 18 < age < 65 tipli ifadəni yaza bilməzsiniz. Çünki 18 < age ifadəsinin dəyəri true və ya false olacaq. Və true ilə bir rəqəmi (65) müqayisə etmək olmaz — tiplər fərqlidir.
3. Məntiqi əməliyyatlar
Java dilində 18 < age < 65 ifadəsini yazmaq olmaz — bu sintaksis baxımından səhvdir və proqram kompilyasiya olunmayacaq.
Amma bunu belə yaza bilərsiniz:
(18 < age) I (age < 65)
Aydındır ki, “VƏ” sözünün yerinə məntiqi operatorlardan istifadə olunur. Java-da üç məntiqi operator var: AND (və), OR (və ya) və 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: Java-da and, or və not sözləri əvəzinə C ailəsindən olan işarələr istifadə olunur: &&, ||, !.
| Məntiqi operator | Gözlənti | Reallıq |
|---|---|---|
| VƏ (∧) | and | && |
| VƏ YA (∨) | or | || |
| DEYİL (¬) | not | ! |
Java-da məntiqi operatorlardan istifadə üzrə bir neçə nümunə:
| İfade | Tərcümə | İzah |
|---|---|---|
|
(0 < a) and (a < 100) | (0 < a) VƏ (a < 100) |
|
(not a) and (not b) | (DEYİL a) VƏ (DEYİL 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
Məntiqi əməliyyatlara qısa baxış edək.
AND operatoru
AND operatoru, yəni VƏ, yəni &&, yəni kon’yunksiya, yəni məntiqi vurma.
| İfade | Nəticə |
|---|---|
| true && true | true |
| true && false | false |
| false && true | false |
| false && false | false |
OR operatoru
OR operatoru, yəni VƏ YA, yəni ||, yəni dizyunksiya, yəni məntiqi toplama.
| İfade | Nəticə |
|---|---|
| true || true | true |
| true || false | true |
| false || true | true |
| false || false | false |
NOT operatoru
NOT operatoru, yəni DEYİL, yəni !, yəni inversiya.
| İfade | Nəticə |
|---|---|
| ! true | false |
| ! false | true |
Faydalı ifadələr:
| İfade | Nəticə |
|---|---|
| m && !m | false |
| m || !m | true |
| !(a && b) | !a || !b |
| !(a || b) | !a && !b |
5. Məntiqi əməliyyatlara nümunələr: and, or, not
“VƏ” əməliyyatı, AND, && ilə işarə olunur
Nəticə yalnız hər iki dəyişən doğru olduqda doğrudur.
int age = 16;
boolean hasTicket = true;
boolean canAttend = age >= 14 && hasTicket; // true (16 14-dən böyükdür VƏ bilet var)
Əgər sənin 14 yaşın varsa VƏ biletin varsa — keç!
“VƏ YA” əməliyyatı, OR, (||) ilə işarə olunur
Nəticə ən azı bir şərt doğru olduqda doğrudur.
boolean isAdmin = false;
boolean isModerator = true;
boolean canEdit = isAdmin || isModerator; // true (bunlardan hər hansı biri true-dursa, redaktə etmək olar)
Əgər sən admin VƏ YA moderatorsansa — buyur, düymələrə bas!
“DEYİL” əməliyyatı, NOT, (!) ilə işarə olunur
İnverter doğrunu yalana, yalanı isə doğruya çevirir.
boolean isWeekend = false;
boolean shouldGoToWork = !isWeekend; // true (əgər həftəsonu deyilsə, işləyirik)
Əgər DEYİL həftəsonudur — qalxmaq vaxtıdır!
Birləşdirmə: istənilən mürəkkəblikdə şərtlər qurun
İstədiyiniz qədər məntiqi əməliyyatı birləşdirə bilərsiniz (amma həddini aşmamaq məsləhətdir). Aydınlıq üçün mötərizələrdən istifadə etmək olar (və gərəkdir!).
Nümunə:
int age = 17;
boolean hasTicket = false;
boolean isVip = true;
boolean canGo = (age >= 18 && hasTicket) || isVip; // true, çünki isVip = true
Məntiq: əgər şəxs yetkindirsə və bileti varsa, yaxud VIP-dirsə — buraxırıq. VIP deyilsə — yalnız yetkindirsə və bileti varsa.
GO TO FULL VERSION