Bu bölümde negatifini alma (–), pozitifini alma (+), artım (++) ve azaltım (––) operatörlerini inceleyeceğiz. Negatifini alma operatörü (–) tek bir operand üzerinde etkili olduğu için, iki operand ile işleme giren (––) sembolü ile karıştırılmamalıdır.
ÖRNEK:
public class Uyg5 {
public static void main(String[] args){
int x, y=-5;
x=16- -y;
System.out.println("x="+x);
}
}
Bu programda x’in değeri 11 olarak bulunacaktır. –y – (–5)= +5 olarak hesaplanır. 16’yı izleyen çıkarma operatörü (–) ile y’nin önündeki negatifini alma (–) operatörü arasında mutlaka bir boşluk olmalıdır. Aksi halde (–) ifadesi azaltım operatörü olarak algılanacaktır.
operatör
|
sembolü
|
kullanlışı
|
işlem sonucu
|
---|---|---|---|
tekli negatif alma | – | –a | a’nın negatifini alır |
son artım | ++ | a++ |
önce a’nın değerini al, kullan, sonra 1
artır.
|
ön artım | ++ | ++a | önce a’nın değerini 1 artır, sonra kullan. |
son azaltım | –– | a–– | önce a’nın değerini al, kullan, sonra 1
son azaltım azalt.
|
ön azaltım | –– | ––a | önce a’nın değerini 1 azalt, sonra kullan.
|
Son artım ve son azaltım operatörlerinde derleyici, değişkenin o andaki değerini bellekte geçici bir değişkene atayarak saklar. Sonra değişkenin değerini 1 artırır (son artım) veya 1 azaltır (son azaltım). Geçici değişkendeki değer ise ifade içinde kullanılır.
ÖRNEK PROJE:
public class Uyg6 {
public static void main(String[] args){
int x=4, y=8, z;
z= x++ + y--;
System.out.println("z="+z);
System.out.println("x="+x);
System.out.println("y="+y);
}
}
PROJENİN ÇIKTISI:
AÇIKLAMA:
Önce x ve y’nin o andaki değerleri geçici bellek alanlarına atanmış (4 ve 8), bu değerlerle ifade hesaplanmış (z=12) sonra x’in değeri 1 arttırılmış ve y’nin değeri 1 azaltılmıştır. İfadeyi z= x+++y--; şeklinde boşluksuz yazsak da sonuç değişmezdi. Derleyici bu durumda +++’nın mevcut operatörler içinde mümkün olan en uzununu (++) alır ve ifadeyi şu şekilde yorumlardı:
z=(x++) + y–– ;
Aynı ifadeyi z=x+++ veya y––- şeklinde yazsak da aynı sonucu elde ederdik. Ön artım ve ön azaltım operatörleri kullanıldığında ise, önce artım (mevcut değere 1 ekleme) veya azaltım (mevcut değerden 1 çıkarma) gerçekleşecek, sonra ifade hesaplanacaktır.
ÖRNEK UYGULAMA:
public class Uyg7 {
public static void main(String[] args){
int x, y, z, m;
x=10;
y=5;
z=16;
m=++x - --y + z++;
System.out.println("z="+z);
System.out.println("x="+x);
System.out.println("y="+y);
System.out.println("m="+m);
}
}
UYGULAMANIN ÇIKTISI:
ARTIM VE AZALIM OPERATÖRLERİ İÇİN BİR DİĞER ÖRNEK UYGULAMA
public class Uyg8 {
public static void main(String[] args){
int m, n, p, q;
m=4;
n=2;
p=10;
q=8;
m= -m++;
n= n--;
p= --p;
q= -++q;
System.out.println("m="+m);
System.out.println("n="+n);
System.out.println("p="+p);
System.out.println("q="+q);
}
}
UYGULAMANIN ÇIKTISI