"Selamlar, Amigo! Mantık problemlerini çözmeye kendimi o kadar kaptırmıştım ki içeri girdiğini fark etmedim. İşte sana bir tane: timsahlar uçuyorsa kar beyazdır. Uçan bir timsah var. Sonuç ne?"
"Hmm... Yani karın beyaz olduğu sonucuna mı varıyoruz?"
"Mükemmel! Başlatma testini geçtiniz. Bir sonraki konuya hakim olmaya hazırsınız. Buna 'mantıksal operatörler' deniyor. Boole mantığıyla başlayacağız. İçgüdüsel olarak, bunu zaten biliyorsunuz. Ne de olsa sen bir robotsun . Yalnızca ayarlarınızı Java diliyle eşleşecek şekilde düzenlememiz gerekiyor."
"Boole mantığı mı? Geçenlerde bana boole türü hakkında söylendi..."
"Evet, burada doğrudan bir bağlantı var. Boole ifadeleri yalnızca doğru veya yanlış olabilir. Ve tesadüfen, bu tür bir mantık tamamen doğru veya yanlış olan ifadeler ve bu tür ifadelerin kombinasyonları ile ilgilidir. Örneğin, 18 < ifadesi 25 her zaman doğrudur ve 7 < 5 her zaman yanlıştır. (i < 10) ifadesi, i'nin değerine bağlıdır. Ve örneğin, ifade doğru olarak değerlendirilirse, o zaman programdan bir şey yapmasını isteyebiliriz."
"Ahh, anladım. Boolean ifadeler, yalnızca mantıklı sonuçlar çıkarmamıza değil, aynı zamanda programlarda çatallar oluşturmamıza da izin veriyor."
"Kesinlikle. Önemli olan bunları nasıl yazacağınızı öğrenmek. Örneğin, Java'da gidip ifadeyi yazamazsınız 18 < age <65
. Bu sözdizimsel olarak yanlış olur ve program derlenmez.
"Ama bunu şöyle yazabilirsin:
(18 < age) AND (age < 65)
Tabii ki aslında İNGİLİZCE kelimesini kullanmıyoruz AND
. Bunun yerine, bir boole operatörüne ihtiyacınız var . Yani, 'VE' farklı şekilde temsil edilir.
"Java'da üç mantıksal işleç vardır: AND
(&&), OR
(||), NOT
(!).
İyi haber şu ki , herhangi bir karmaşıklığın mantıksal ifadelerini oluşturmak için parantezleri kullanabilirsiniz .
Kötü haber şu ki, Java geliştiricileri , ve sözcükleri yerine C dilinden gösterim kullanmaya karar verdiler .and
or
not
Ekrana bak:
mantıksal operatör | beklenti | gerçeklik |
---|---|---|
AND (∧) |
and |
&& |
OR (∨) |
or |
|| |
NOT (¬) |
not |
! |
"Aslında o kadar da kötü değil... Oldukça derli toplu. Neredeyse ezberledim."
"Eh, bu harika. İşte Java'da mantıksal işleçler kullanmanın bazı örnekleri:
İfade | Tercüme | Açıklama |
---|---|---|
(0 < a) && (a < 100) |
(0 < a) and (a < 100) |
(0 < a) AND (a < 100) |
(!a) && (!b) |
(not a) and (not b) |
(NOT a) AND (NOT b) |
!(!a || !b) |
not((not a) or (not b)) |
NOT((NOT a) OR (NOT b)) |
Karşılaştırma işleçlerini ve boolean değişkenlerini kullanma örnekleri
"Unutma Amigo, nerede mantıksal bir ifade yazabiliyorsan, mantıksal bir değişken de yazabilirsin."
"O nasıl?"
"Demek istediğim, mantıksal ifadeleri farklı şekillerde yazabilirsiniz. Örneğin:
kod | Açıklama |
---|---|
|
Yaş değeri ile arasında ise 18 " 65 Çalışabilirsin" ibaresi görüntülenir. |
|
Bir değişken yarattık isYoung ve ifadenin ilk bölümünü içine taşıdık. age >= 18 ile basitçe değiştirdik age < 18 . |
|
Bir isOld değişkeni oluşturduk ve ifadenin ikinci bölümünü içine taşıdık. Ek olarak, age <= 65 ile değiştirildi age > 65 . |
if
"Bu üç örnek eşdeğerdir. Yalnızca ikinci örnekte ifadenin bir kısmını ifadeden ayrı bir boole değişkenine ( ) taşıdık isYoung
. Üçüncü örnekte ifadenin ikinci kısmını ikinci bir değişkene ( isOld
) taşıdık. Bu arada, bir boole değişkeninin varsayılan değeri false
."
"Bunu hatırlayacağım. Umarım."
mantıksal aritmetik
"Şimdi kısaca mantıksal işlemlere geçelim. Çok basit ve mantıklı (aksi nasıl olur!) kurallara uyarlar.
"Önce, operatörün nasıl çalıştığına bir bakalım . Ayrılık olarakOR
da bilinir .||
İfade | Sonuç |
---|---|
true || true |
true |
true || false |
true |
false || true |
true |
false || false |
false |
a || b
" Tabloya göre ifadenin sonucunun ne olduğunu şimdi anlayabilir misin ?"
"Anlıyorum!" Bir ifadenin değeri, true
ifadedeki en az bir terimin olmasıdır true
. Her ikisi de ise false
, sonuç da olur false
.
"Bu doğru. Madem çok zekisin, masaya bir kez daha bak ve bunun false
0 ve true
1 olduğunu hayal et. Bu şekilde baktığında, operatörün ||
davranışı sana sıradan aritmetikten herhangi bir şey hatırlatıyor mu?"
"Hmm... Bu biraz toplamaya benziyor... Ama toplama yaptığınızda 1+1 1 etmiyor."
"Sadece 0 ve 1 ile çalışıyorsak bir anlamda eşittir. Ama şimdi bununla uğraşmayın. Önemli olan, işlem ile toplama arasındaki benzerliği fark etmişsinizdir. Bu, kazanacağınız anlamına gelir. ||
" Bu işleme genellikle "mantıksal toplama" denmesi sizi şaşırtmasın.
"Anladım."
"Şimdi AND
, aka &&
, aka bağlaç operatörü sahneye çıkıyor.
İfade | Sonuç |
---|---|
true && true |
true |
true && false |
false |
false && true |
false |
false && false |
false |
"Anladığım kadarıyla, bir ifadenin sonucu, true
yalnızca ifadeyi oluşturan her iki değerin de olması durumunda olur true
. Aksi takdirde, her zaman olur false
."
"Aferin Amigo! Bütün bunları bir sünger gibi emiyorsun. Aritmetikle başka bir benzerlik görüyor musun?"
"Çarpma işlemi!"
"Kesinlikle. Yani burada bir 'mantıksal çarpma'mız var".
NOT
"Sonra operatöre, namı !
diğer mantıksal tersine bakacağız .
İfade | Sonuç |
---|---|
!true |
false |
!false |
true |
"Eh, burada her şey oldukça basit. Operatör değişir true
ve false
tersi."
"Kesinlikle. İşte size bazı yararlı ifadeler:"
İfade | Sonuç |
---|---|
m && !m |
false |
m || !m |
true |
!(a && b) |
!a || !b |
!(a || b) |
!a && !b |
GO TO FULL VERSION