Java programlama dilini öğrenirken en çok kullanacağınız temel yapı taşlarından biri “operatörler”dir. Bir bilgisayar programı özünde verileri alır, işler ve sonuç üretir. İşte bu veriler üzerinde matematiksel hesaplamalar yapmak, değerleri birbirleriyle karşılaştırmak veya mantıksal kararlar vermek için kullandığımız özel sembollere operatör adı verilir.
Günlük hayatta bir matematik denkleminde gördüğünüz “+” (toplama) veya “>” (büyüktür) işaretleri Java’da da aynı temel mantıkla çalışır. Ancak Java, çok daha karmaşık problemleri çözebilmek için geniş bir operatör yelpazesi sunar. Bu rehberde, Java operatörlerini en temelden başlayarak örneklerle inceleyeceğiz.
1. Aritmetik Operatörler
Aritmetik operatörler, tıpkı cebirde olduğu gibi sayılar üzerinde temel matematiksel işlemleri gerçekleştirmek için kullanılır.
- + (Toplama): İki sayıyı toplar. Ayrıca metinleri (String) yan yana birleştirmek için de kullanılır.
- – (Çıkarma): Bir sayıdan diğerini çıkarır.
- * (Çarpma): İki sayıyı çarpar.
- / (Bölme): Bir sayıyı diğerine böler. (Dikkat: İki tam sayı bölündüğünde sonuç her zaman tam sayı çıkar, küsurat atılır).
- % (Mod Alma): Bir bölme işleminden kalan değeri verir. Yeni başlayanların en çok kullandığı pratik işlemlerden biridir. Örneğin, bir
Nsayısının çift mi tek mi olduğunu anlamak içinN % 2işleminin sonucunun 0 olup olmadığına bakılır.
Örnek:
int a = 10;
int b = 3;
System.out.println("Toplama: " + (a + b)); // Çıktı: 13
System.out.println("Mod Alma (Kalan): " + (a % b)); // Çıktı: 1
2. Atama ve Birleşik Atama Operatörleri
Atama operatörü, tek bir eşittir (=) işaretidir. Programlamada eşittir işareti, sağdaki değeri soldaki değişkene aktarmak (atamak) anlamına gelir. Java’da zincirleme atama yapmak bile mümkündür; örneğin x = y = z = 100; kodu her üç değişkene de 100 değerini atar.
Ayrıca, bir işlemi yapıp sonucu aynı değişkene geri atamayı sağlayan Birleşik Atama Operatörleri vardır (+=, -=, *=, /=, %=).
a += 4;ifadesi,a = a + 4;ile tamamen aynı işi yapar (a’nın değerini 4 artırır) ancak hem daha az kod yazmanızı sağlar hem de arka planda daha verimli çalışabilir.
3. Arttırma (++) ve Azaltma (–) Operatörleri
Java’da bir değişkenin değerini sadece 1 artırmak veya 1 azaltmak çok sık yapılan bir işlemdir. Bunun için özel olarak ++ (arttırma) ve -- (azaltma) operatörleri kullanılır. Bu operatörlerin iki farklı kullanım şekli vardır ve aralarındaki farkı bilmek çok önemlidir:
- Önek (Prefix) Kullanımı (
++xveya--x): Operatör değişkenin önüne yazılırsa, önce değişkenin değeri 1 artırılır (veya azaltılır), sonra o satırdaki işleme devam edilir. - Sonek (Postfix) Kullanımı (
x++veyax--): Operatör değişkenin sonuna yazılırsa, değişkenin o anki (eski) değeri işlemde kullanılır, işlem bittikten hemen sonra değişkenin değeri 1 artırılır.
Örnek:
int x = 10;
int y = x++; // y'ye 10 atanır, sonra x 11 olur.
int z = ++x; // x 12 olur, sonra z'ye 12 atanır.
Kafa karışıklığını önlemek için bu operatörleri karmaşık matematiksel denklemlerin içine gömmek yerine, kodunuzda tek başlarına birer satır olarak kullanmanız tavsiye edilir.
4. İlişkisel (Karşılaştırma) Operatörleri
İki değerin birbirine göre büyüklük, küçüklük veya eşitlik durumunu kontrol etmek için kullanılırlar. Karşılaştırma operatörlerinin sonucu her zaman boolean tipinde yani true (doğru) veya false (yanlış) döner.
==(Eşittir): İki değer eşitse true döner.!=(Eşit Değildir): İki değer birbirinden farklıysa true döner.>(Büyüktür) /<(Küçüktür) />=(Büyük Eşittir) /<=(Küçük Eşittir).
Çok Önemli İpucu: C veya C++ dillerinin aksine, Java’da true veya false kelimeleri 1 veya 0 gibi sayılara karşılık gelmez. Ayrıca metinleri (String’leri) birbiriyle karşılaştırırken asla == operatörünü kullanmamalısınız, çünkü bu operatör metinlerin içeriğini değil, bellekte aynı yerde olup olmadıklarını kontrol eder; bunun yerine her zaman equals() metodunu kullanmalısınız.
5. Mantıksal Operatörler
Mantıksal operatörler, birden fazla ilişkiyi (koşulu) birbirine bağlamak için kullanılır. Özellikle if-else gibi karar yapılarında çok işinize yarayacaktır.
&&(Kısa Devre VE – Short-Circuit AND): Bağladığı iki koşulun datrueolmasını ister.||(Kısa Devre VEYA – Short-Circuit OR): Bağladığı koşullardan yalnızca birinintrueolması yeterlidir.!(DEĞİL – NOT): Mantıksal durumu tersine çevirir.!trueişlemifalsesonucunu üretir.
Neden “Kısa Devre” Denir? Java’da && ve || operatörleri akıllıdır. Örneğin (x != 0) && (y / x > 1) gibi bir işlemde, eğer x değişkeni zaten sıfırsa ilk koşul false olur. Java, ilk koşul false olduğu için sonucun her halükarda false çıkacağını bilir ve ikinci kısmı hiç çalıştırmaz. Bu muazzam özellik sayesinde program “Sıfıra Bölme” gibi ölümcül hatalardan korunmuş olur.
6. Üçlü (Ternary) Operatör (?:)
Ternary operatörü, if-else koşul yapısının tek satıra indirilmiş, oldukça pratik bir halidir. Üç kısımdan oluşur: (koşul) ? dogru_ise_bu_degeri_al : yanlis_ise_bu_degeri_al
Örnek:
int sayi = -10;
// Sayı sıfırdan küçükse kendisiyle eksiği çarp (mutlak değer), değilse kendini al.
int mutlakDeger = (sayi < 0) ? -sayi : sayi;
System.out.println(mutlakDeger); // Çıktı: 10
Bu örnekte soru işaretinden önceki kısım kontrol edilir, doğru olduğu için iki nokta üst üste (:) işaretinin solundaki işlem devreye girer.
7. Bit Düzeyinde (Bitwise) Operatörler
İleri düzey programlamada (örneğin donanım kontrolü, ağ şifreleme veya grafik programlama) sayıların arka plandaki 1 ve 0’lık ikili (binary) bitleri üzerinde doğrudan işlem yapmak gerekebilir. Java bu işlemler için & (Bitwise VE), | (Bitwise VEYA), ^ (Bitwise XOR), ~ (Bitwise DEĞİL) ile birlikte, bitleri sağa ve sola kaydırmaya yarayan <<, >>, ve >>> operatörlerini sunar. Başlangıç aşamasında bunları derinlemesine kullanmasanız da Java’nın donanım diline inebilen güçlü bir yapısı olduğunu bilmek önemlidir.
8. Operatör Önceliği (Operator Precedence)
Matematikte her zaman “önce çarpma ve bölme, sonra toplama ve çıkarma” kuralı vardır. Java da formülleri hesaplarken kendi içindeki bu hiyerarşiyi takip eder. Örneğin A + B * C işleminde, çarpma operatörünün önceliği toplamadan yüksek olduğu için Java önce B ile C’yi çarpar, çıkan sonucu A ile toplar. Atama operatörü (=) işlemleri sağdan sola doğru çalıştırırken, diğer çoğu operatör soldan sağa çalışır.
Önemli Bir Tavsiye: Karmaşık formüller yazarken Java’nın işlem önceliğini ezberlemeye çalışmak yerine, her zaman parantez () kullanın. Örneğin (A + B) * C şeklinde yazmak, sadece işlem sırasını değiştirmekle kalmaz, kodunuzu okuyan diğer geliştiriciler (veya gelecekteki siz) için anlaşılabilirliği muazzam derecede artırır. Üstelik fazladan koyduğunuz parantezler programınızın hızını veya performansını kesinlikle yavaşlatmaz.
Sonuç: Java dilinde operatörler, programlama mantığınızı kurgulamanızı sağlayan temel bağlaçlardır. Başlangıçta aritmetik ve atama operatörlerine alışıp, ardından ilişkisel ve mantıksal operatörlerle algoritmalarınızı güçlendirdikçe Java’da problem çözmenin aslında ne kadar yapısal ve anlaşılır olduğunu fark edeceksiniz. İlk kodlarınızı yazıp bol bol hata yaparak bu sembolleri tecrübe etmekten çekinmeyin!





