Bölüm 06: Operatörler 1 Mantıksal (Logic) Operatörler Bilgisayar dillerinin hemen hepsinde, program akışını kontrol edebilmek ve yönlendirebilmek için mantıksal operatörler kullanılır. Java dilinde kullanılan mantıksal operatörler aşağıda açıklanmıştır. boolean a, b; olmak üzere, mantıksal operatörlerin etkisi aşağıdaki tablodan görülebilir: İşlem Operatör Açıklama a && b Mantıksal ve Kısa devre ve a || b Mantıksal veya Kısa devre veya a & b Mantıksal ve Uzun devre ve a | b Mantıksal veya Uzun devre veya a ^ b Dışarmalı (exclusive) veya !a Değilleme Kısa devre (x != 0) && (1/x > 1) Güvenli Uzun devre (x != 0) & (1/x > 1) Güvenli değil Örnekler: && ve || mantıksal operatörlerinin farklı kullanım biçimlerini örnekler üzerinde göreceğiz. Aşağıdakiler bu konuda biraz ipucu verebilirler. bool aa = false; bool bb = !aa; ise bb nin değeri true olur.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Bölüm 06: Operatörler 1
Mantıksal (Logic) Operatörler
Bilgisayar dillerinin hemen hepsinde, program akışını kontrol edebilmek ve yönlendirebilmek için
mantıksal operatörler kullanılır. Java dilinde kullanılan mantıksal operatörler aşağıda açıklanmıştır.
boolean a, b;
olmak üzere, mantıksal operatörlerin etkisi aşağıdaki tablodan görülebilir:
İşlem Operatör Açıklama
a && b Mantıksal ve Kısa devre ve
a || b Mantıksal veya Kısa devre veya
a & b Mantıksal ve Uzun devre ve
a | b Mantıksal veya Uzun devre veya
a ^ b Dışarmalı (exclusive) veya
!a Değilleme
Kısa devre (x != 0) && (1/x > 1) Güvenli
Uzun devre (x != 0) & (1/x > 1) Güvenli değil
Örnekler:
&& ve || mantıksal operatörlerinin farklı kullanım biçimlerini örnekler üzerinde göreceğiz.
Aşağıdakiler bu konuda biraz ipucu verebilirler.
bool aa = false;
bool bb = !aa;
ise bb nin değeri true olur.
Bölüm 06: Operatörler 2
int i=8, j=14;
bool xxx = i>4 && j<12;
ise, xxx false değerini alır. Oysa,
bool yyy = i>3 || j<10;
ise yyy 'nin değeri true olur.
bool zzz = (i>3 && j<10) || (i<9 && j>10)
ise, zzz nin değeri true olur.
boolean b;
b = !(3 > 2); // b is false
b = !(2 > 3); // b is true
boolean b;
b = 3 > 2 && 5 < 7; // b is true
b = 2 > 3 && 5 < 7; // b is now false
boolean b;
b = 3 > 2 || 5 < 7; // b is true
b = 2 > 3 || 5 < 7; // b is still true
b = 2 > 3 || 5 > 7; // now b is false
Java dilinde, mantıksal deyimleri birbirlerine bağlamak için iki operatör kullanılır
&& Logical AND (Mantıksal VE)
|| Logical OR (Mantıksal VEYA)
Kısa Devre AND Operatörü: &&
boolean1 ve boolean2 iki mantıksal deyim olmak üzere, bu iki deyimin mantıksal VE ile
birbirlerine bağlanması için
boolean1 && boolean2
yazılır. Bu mantıksal bir bileşkedir. Bilindiği gibi, bileşenlerinden her ikisi de doğru olduğunda bileşke
deyim doğru, aksi halde yanlıştır.
boolean1 && boolean2
deyiminde
Her iki operand boolean olmalıdır
Sonuç boolean’dir
Her iki operand true ise sonuç true, değilse false olur
Soldaki operand false ise, sağdaki operand değerlendirilmez (koşullu deyim)
true && true = true; // her iki operand değerlendirildi
false && true = false; // yalnız soldaki operand değerlendirildi
Bölüm 06: Operatörler 3
Dolayısıyla, boolean1 yanlış ise, boolean2 nin değeri hesaplanmaz. Çünkü boolean2 doğru
olsa bile bileşik deyim yanlış olacaktır. O nedenle, bu deyime koşullu VE deyimi ya da kısa-
devre-VE deyimi denir.
KoşulluAND01.java
package Bölüm06;
public class KoşulluAND01 {
public static void main(String[] args) {
int a = 0;
int b = 1;
if (a == 0 && b == 1) {
System.out.println("Doğru");
} else {
System.out.println("Yanlış");
}
}
}
Çıktı:
Doğru
LogicDemo.java
package Bölüm06;
public class LogicDemo {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b = " + (a && b));
System.out.println("a || b = " + (a || b));
System.out.println("!(a && b) = " + !(a && b));
}
}
Çıktı:
a && b = false
a || b = true
Bölüm 06: Operatörler 4
!(a && b) = true
LogicOR1.java
package Bölüm06;
public class LogicOR1 {
public static void main(String[] args) {
int x = 10;
if(x == 15 | x ==10) {
System.out.println( x + " sayısı 5 ile bölünebilir.");
}
}
}
Çıktı:
10 sayısı 5 ile bölünebilir.
Kısa Devre OR: ||
Boolean1 || boolean2
deyiminde boolean1, true ise, boolean2’nin değeri ne olursa olsun Boolean1 || boolean2
deyimi true olacaktır. O nedenle, boolean1 true değer alınca, derleyici boolean2’yi denetlemez;
Boolean1 || boolean2 bileşkesinin true olduğuna karar verir. Buna Kısa Devre OR deyimi
denilir.
KısaDevreOR2.java
package Bölüm06;
public class KısaDevreOR2 {
public static void main(String[] args) {
int x = 12;
if(x == 12 || x ==7) {
System.out.println( x + " sayısı 4 ile bölünebilir.");
}
}
}
Çıktı:
12 sayısı 4 ile bölünebilir.
Mantıksal Operatörler
Bölüm 06: Operatörler 5
Operator Açıklama
& Logical AND | Logical OR
^ Logical XOR (exclusive OR) || Short-circuit OR && Short-circuit AND ! Logical unary NOT &= AND assignment |= OR assignment
^= XOR assignment == Equal to != Not equal to ?: Ternary if-then-else
MantıksalOperatörler01.java
package Bölüm06;
public class MantıksalOperatörler01 {
public static void main(String[] args) {
// && (Koşullu - Kısa Devre AND) operatörü için tablo
Java dilinde aşağıdaki operatörleri de kullanırız.
Operand Açıklama
<< Sola kayan bit işlemi (left shift bitwise operator) >> Sağa kayan bit işlemi (right shift bitwise operator) . Nesne öğelerine erişim (member access for objects) [ ] Array indisleme (indexing operator used in arrays and collections) ( ) Veri dönüştürme operatörü (cast operator) ?: Koşullu deyim operatörü (ternary operator)