26 Ağustos 2012 Pazar

Operatörler - 1

Merhaba.
Bu yazıda biraz operatörlerden bahsedelim. Bunlar aritmetik, bit tabanlı, mantıksal ve ilişkisel operatörler olarak dörde ayrılır.
Aslında oldukça basit bir konudur ve vakit geçtikçe o kadar aşina olacağız ki, belki siz bu yazıyı okuduğunuz ben de yazdığım süreye acıyacağız.
İşin aslına bakarsak, bunları bir liste halinde verip, üzerinde konuşulmaya değer olanları konuşmak yeterli olacak gibi duruyor. O zaman aritmatik operatörlerden başlayalım;

Aritmetik Operatörler

+, -, / ve * operatörlerinin anlamları gayet açık. Bu sebeple bunlardan özellikle bahsetmeye gerek yok diye düşünüyorum.
% işareti, mod için kullanılır. Mod, bir sayının diğerine bölümünden elde edilen kalandır. Yani, 10%3 işleminin sonucunu bir değişkene atarsak, değişkenin değeri 1 olacaktır.
++ ve -- işaretleri ise, değişkenin değerine 1 ekleyen veya çıkartan operatörlerdir. Bunları, değişkenin önünde veya sonunda kullanmak arasında büyük bir fark vardır. Bu farkı anlamak için kısa bir kod yazıp çalıştıralım.


int sayi = 10;
int sayi2 = 5;
System.out.println("İlk sayı: "+ sayi +"Operatör değişkenin sonuna eklenince: "+ sayi++); System.out.println("Şimdi sadece kendisini yazalım: "+sayi);
System.out.println("İlk sayı: "+ sayi2 +"Operatör değişkenin sonuna eklenince: "+ ++sayi2);
System.out.println("Şimdi sadece kendisini yazalım: "+sayi2);

Gördüğünüz gibi, ++ operatörünü değişkenden sonra koyarsak, önce değişkeni kullanıyor, sonra değerini arttırıyor. Böylece bir sonraki kullanımda değerine 1 eklenmiş halde oluyor. Eğer önce koyarsak, bu sefer önce değerini arttırıp sonra kullanıyor. Böylece ++sayi yazdıktan sonra orijinal değeri hiç kullanmamış oluyoruz.
Başka bir grup aritmetik operatörler ise, basit dört işlemin işareti ile eşittir işaretini bir arada kullanan operatörlerdir (+=, -=, /=, *= ve %=). Bunlar ise, sol taraftaki değer ile sağ taraftaki değeri işler, ardından sonucu sol taraftaki değere atar. Dediğimi anlamak için yukarıdaki koda şunları ekleyelim;


  System.out.println("+= operatörünü kullanarak sayi ile sayi2'yi toplayıp değeri sayi'ya atamaya çalışalım:");
  sayi += sayi2;
  System.out.println(sayi);

Burada bu kodların çıktılarını vermeme gerek yok, çünkü zaten siz de deniyorsunuz şu anda :) Yalnız sizden bir ricam var, %= operatörünü kendiniz deneyin. Benim açıklamamı düşününce oradan çıkan sonucun sizi şaşırtma ihtimali var çünkü.

İlişkisel Operatörler

Bunlar bizim karşılaştırma yapacağımız operatörler. Döngülerde vs. en çok bunları kullanacağız. Liste şeklinde yazalım;
==  Eşittir
!=   Eşit değil
<    Küçük
>    Büyük
<=  Küçük eşit
>=  Büyük eşit

== operatörüne dikkat çekmek istiyorum çünkü döngülerde bir kısmımız bunun yerine = operatörünü kullanacak ve neden hata verdiğini merak edeceğiz :)
== operatörü, iki değeri birbiriyle karşılaştırırken, = operatörü atama yapar. Yukarıdaki kodumuza şunu ekleyerek durumu görelim isterseniz;


  System.out.println("= kullanarak sayi = sayi2 yazalım ve iki sayının değerlerini görelim.");
  System.out.println("Şu anda sayi: " + sayi + " ve sayi2: " + sayi2);
  sayi = sayi2;
  System.out.println("İşlemden sonra ise durum şu;");
  System.out.println("sayi: " + sayi + " sayi2: " + sayi2);

Mantıksal operatörleri biraz uzun olduğu için yeni bir yazıda ele alalım.

Şu anda bu operatörlerle yapacak pek bir şeyimiz yok. Hatta, şimdiye kadar öğrendiklerimizle ilgili yapacak bir şey yok. Ama hepsi döngüleri ve koşul ifadelerini öğrendiğimiz zaman işimize yaramaya başlayacak. İşe yarar daha kaliteli programlar için ise, sınıflar, kalıtım ve polimorfizm konularını öğrenmemiz gerekecek.

Hiç yorum yok:

Yorum Gönder