Java’da Operatörler ve Kullanim Örnekleri
Operatörler ; bir, iki ya da üç tane islenen (operand) üzerinde islem yapip bir sonuç üreten sembollerdir.
Tek islenenli operatörlere, tekli (unary)operatör, Iki islenenli operatörlere, ikili (binary) operatör, Üç islenenli operatörlere de, üçlü(ternary) operatör denir.
Unary Operator:
- Operand Operator, örnek: ++variable
- Operator operand, örnek: variable—
Binary Operator:
- Örnek : atama operatörü;iki islenen alir ve sagdaki isleneni soldaki islenene atar.
- +,-,/,*,% gibi aritmetik operatorler binary operatörlerdir.
Ternary Operator:
- "?:" 3 tane islenen alan tek operatördür.
- Örnek kullanimi;
int x=5; int y=3; int max= (x<=y) ? y : x;
Operatör Önceligi
Bir ifade (expression) de birden çok operatör/islenen kullandigimizda hangi islenenin hangi islenenden önce islevini yapacagini bilmemiz gerekir. Örnek verecek olursam:
x sayisindan y sayisini çikarip, sonucu 2 ile çarpmak istiyoruz.
x - y * 2
formülü yanlis olacaktir. Çünkü, Java’da * operatörü + operatörüne göre öncelige sahiptir ve önce çarpma islemi yapilir.
long sayi = 10 - 5 * 2 ;
ifadesinin sonucu, beklentimiz olan 10 degil 0 dir. Çünkü, JAVA derleyicisi 10 – 5 * 2 islemini su sirada yapacaktir:
5 * 2 - 10 = 0
Bu karisikligi ortadan kaldirmak için, operatör öncelik tablosu hazirladim:
Operatör Öncelik Tablosu:
Operatör Kategorisi | Operatörler |
---|---|
Primary | x.y f(x) a[x] x++ x– |
Unary | + – ! ~ ++x –x (T)x |
Çarpimsal(Multiplicative) | * / % |
Toplamsal (Additive) | + – |
Kayma (Shift) | << >> |
Iliskisel (Relational) | < > <= >= |
Esitlik (Equality) | == != |
Mantiksal VE (Logical AND) | & |
Mantiksal XOR (Logical XOR) | ^ |
Mantiksal VEYA (Logical OR) | | |
Kosullu VE (Conditional AND) | && |
Kosullu VEYA (Conditional OR) | || |
Kosullu (Conditional, ternary) | ?: |
Atama (Assignment) | = *= /= %= += -= <<= >>= &= ^= |= |
Operatör Çesitleri Ve Kullanimlari
++ ve — Operatörleri:
public class Main { public static void main(String args[]){ int x = 10; System.out.println("x = " + x); System.out.println("++x degeri = " + ++x); System.out.println("x = " + x); x = 10; System.out.println("x++ degeri = " + x++); System.out.println("x = " + x); x = 10; System.out.println("x-- degeri = " + x--); System.out.println("x = " + x); x = 10; System.out.println("--x degeri = " + --x); System.out.println("x = " + x); } }
Çikti:
x = 10 ++x degeri = 11 x = 11 x++ degeri = 10 x = 11 x-- degeri = 10 x = 9 --x degeri = 9 x = 9
Aritmetik Operatorler:
Aritmetik islemler yaparken kullandigimiz operatörlerdir. +, -, *, /, % operatörleridir.
public class Main { public static void main(String[] args) { double x = 100.5; int y = 25; System.out.println("x + y = " + (x + y)); System.out.println("x - y = " + (x - y)); System.out.println("x * y = " + (x * y)); System.out.println("x / y = " + (x / y)); System.out.println("x % y = " + (x % y)); } }
Çikti:
x + y = 125.5 x - y = 75.5 x * y = 2512.5 x / y = 4.02 x % y = 0.5
Atama Operatörleri
Atama operatörleri, degiskenlere deger atamak için kullanilan simgelerdir. =, +=, -=, *=, /=, %= operatörleridir.
public class Main { public static void main(String[] args) { int x = 10; int y = 12; System.out.format("x= %d ve y = %d ise x +=y = %d %n", x, y, x += y); System.out.format("x= %d ve y = %d ise x -=y = %d %n", x, y, x -= y); System.out.format("x= %d ve y = %d ise x *=y = %d %n", x, y, x *= y); System.out.format("x= %d ve y = %d ise x /=y = %d %n", x, y, x /= y); System.out.format("x= %d ve y = %d ise x mod=y = %d %n", x, y, x %= y); } }
Çikti:
x= 10 ve y = 12 ise x +=y = 22 x= 22 ve y = 12 ise x -=y = 10 x= 10 ve y = 12 ise x *=y = 120 x= 120 ve y = 12 ise x /=y = 10 x= 10 ve y = 12 ise x mod=y = 10
Iliskisel Operatörler
Iliskisel (relational) operatorler iki degiskenin degerlerini karsilastirir. ==, !=, >, < , >=, <= operatörleridir. Sonucunda boolean deger döndürürler.
public class Main { public static void main(String[] args) { int x=12; int y = 18; boolean sonuç; sonuç = (x > y); System.out.println("x > y = " + sonuç); sonuç = (x < y); System.out.println("x < y = " + sonuç); sonuç = (x <= y); System.out.println("x <= y = " + sonuç); sonuç = (x >= y); System.out.println("x >= y = " + sonuç); sonuç = (x == y); System.out.println("x == y = " + sonuç); sonuç = (x != y); System.out.println("x != y = " + sonuç); } }
Çikti:
x > y = false x < y = true x <= y = true x >= y = false x == y = false x != y = true
Bitwise Operatörler
Bu operatörler, islenenlerin bit yapilari üzerinden çalisir. Bit seviyesinde islem yapan iki operatör çesidi vardir: kaydirma, mantiksal.
Mantiksal bitwise operatörler : &, |, ^, ~
public class Main { public static void main(String[] args) { System.out.println("0 & 1 sonucu: "+ (0 & 1)); System.out.println("0 | 1 sonucu: "+ (0 | 1)); } }
Çikti:
0 & 1 sonucu: 0 0 | 1 sonucu: 1
Kaydirma operatörleri : <<, >>
public class Main { public static void main(String[] args) { System.out.println("3(000011)>>1: "+ (3>>1)); System.out.println("3(000011)<<3: "+ (3<<3)); } }
Çikti:
3(000011)>>1: 1 3(000011)<<3: 24
Mantiksal (Logic) Operatörler
&&, || operatörleridir. Bu operatorler de boolean deger dönerler. Genlde if statement’larda ya da do while,for dongulerinde kullanilir.
public class Main { public static void main(String[] args) { int x = 8; int y = 5; System.out.println("y == x - 3 && 7 > 6 sonucu: "+ (y == x - 3 && 7 > 6)); System.out.println("x >= y && x < y + 3 sonucu: "+(x >= y && x < y + 3)); System.out.println("x != y || x - y == 5 sonucu: "+(x != y || x - y == 5)); System.out.println("!(x == 4) && x-2 > y+5 sonucu: "+(!(x == 4) && x-2 > y+5)); } }
Çikti:
y == x - 3 && 7 > 6 sonucu: true x >= y && x < y + 3 sonucu: false x != y || x - y == 5 sonucu: true !(x == 4) && x-2 > y+5 sonucu: false
Derslerin devamyny bekliyoruz. Emeginize sa?lyk.