Şimdi geçen bölümde size kontrol ifadeleri ile program yönetmeyi göstermiştim. Şimdi ise programın içindeki değerleri işlemeyi göstereceğim. Bu şekilde sahip olduğunuz değerlilikleri karşılaştırabilirsiniz ya da değer atamalarını etkili şekilde yapabilirsiniz. Bunlar genel olarak kullanmadan da programlama yapabileceğiniz ama hem programınızı kısaltıp okumayı ve yazmayı kolaylaştıran, hem de sizi karışık algoritmalardan kurtarıp programınızın çalışma hızı ve kalitesini arttıran kısa yollardır. Ayrıntılı bir konu olduğu için sizi sıkmadan üzerinden geçeceğim. Eğer yeterli gelmezse firat@sibnetz.com adresinden bana ulaştığınız taktirde yeni bölümün başında sorularınızı yanıtlayabilir ya da sorularınız için bir ara bölüm açabilirim.
Operatörler iki şekilde ayrılabilir. İlk ayırma yöntemi mantıksal, aritmetik ve ikilik tabanlıdır. Diğer kategorilendirme metodu ise karşılaştırma ve atama şeklindedir.
Anlamadınız dimi? Açıklamama izin verin. Ama bundan önce aşağıdaki örnekleri inceleyelim.
Anlamadınız mı? Anlatayım.
AND: İki değerde true ise true dur. Geri kalan bütün olasılıklarda false dur. OR: İki değerden ikiside false ise false tur. Aksi taktirde true dur. XOR: İki değerden sadece biri true ise true dur. NOT: Değer true ise false, false ise true dur.
Operatörler iki şekilde ayrılabilir. İlk ayırma yöntemi mantıksal, aritmetik ve ikilik tabanlıdır. Diğer kategorilendirme metodu ise karşılaştırma ve atama şeklindedir.
Aritmetik Atamalar
Atama var olan bir değerliliğin değerini değiştirmektir. Bu operatörler programınızın içindeki aritmetik değerlerin(byte, short, int, long, float, double) değerlerini işler. Bunlar aşağıdaki gibidir.
Operatörler | İşlevleri |
= | Eşitleme |
+ | Toplama |
- | Çıkarma |
* | Çarpma |
/ | Bölme |
% | Kalan Alma |
++ | 1 Arttırma |
-- | 1 Eksiltme |
+= | Kendisiyle Toplama |
-= | Kendisinden Çıkartma |
*= | Kendisiyle Çarpmak |
/= | Kendisini Bölmek |
%= | Kendisinin Kalanını Alma |
Anlamadınız dimi? Açıklamama izin verin. Ama bundan önce aşağıdaki örnekleri inceleyelim.
a = 1;//a nın değeri 1'e eşitlendi.
a = 1 + 2; // a nın değeri 3 tür.
b= 2 - 1; //b 1'e eşittir.
c= 2 * 2; //Tahmine etmesi pek zor değil ama c 4'tür.
d= 4 / 1; //Cevabı bulan yoruma yazsın.
a++; //a = a + 1; in yerine kullanılır ve anın değerini 1 arttırır. a = 4
b--; //Benzer şekilde b nin değerini eksiltir. b = 0
a += 5;// a = a + 5 yerine kullanılır. a = 9
b -= 4;// b = b- 4 dün karşılığıdır. b = -4
c *= 7;//Aynı mantık geçerlidir. c = 28
d /= 2;//Cevap ve yaptığı işi anlayan yoruma yazsın.
b = c % a;// 28 / 9 kalanı yani 1 b nin değeri olarak atanır.
c%=a;//c nin değeri a ile bölümünden kalandır. Yani 1
Not: (//) ardından gelen yazılar programla birlikte derlenmez. Kendisinden itibaren bütün satırı derlemenin dışında tutar. Aynı şekilde /* ve */ arasındaki programda derlenmez. Deneme yanılma yolu ile program yazarken ya da programınızın belli yerlerine not düşmek istediğinizde çok kullanışlılardır. Şimdi sıra karşılaştırmalı aritmetik operatörlerde.
Not: y = ++x; ifadesi
x++ ;
y = x; demektir.
y = x++; ise
y=x;
x++; anlamına gelir
Aritmetik Karşılaştırmalar
Aritmetik karşılaştırma operatörleri iki değerliliğin değerlerini karşılaştırıp, operatör ile belirtilen durumun doğru olması durumunda bir boolean yani mantıksal değer türetir. Bu operatörlere aşağıdan ulaşabilirsiniz.
Operatörler | İşlevleri |
== | Eşittir. |
!= | Eşit değildir. |
< | Küçüktür. |
> | Büyüktür. |
<= | Küçük ya da eşittir. |
>= | Büyük ya da eşittir. |
Asıl kullanım alanları if, for, while ve do-while(Fırat Ağış ile Java Bölüm 4) komutlarını yönetmektir. Bunlar basit olduğundan üzerin de durmayacağım. Eğer size basit gelmediyse( ki bu gayet doğal) bana firat@sibnetz.com dan ulaşabilirsiniz. Şimdi devam edelim.
Mantıksal Operatörler
Bunlar iki boolean değerini karşılaştırır. Aynı zaman da aritmetik karşılaştırmalar ile türetilmiş boolean değerlerini de karşılaştırmak için kullanılabilirler. Aşağıdaki gibidirler.
Operatör | İşlevi |
& veya && | AND |
| veya || | OR |
^ | XOR |
! | NOT |
&= | Kendisi ile AND |
|= | Kendisi ile OR |
^= | Kendisi ile XOR |
== | Eşit |
!= | Eşit değil |
Yine anlamadınız dimi? Bundan sonra sokakta ben çok zekiyim ben her şeyi bilirim havalarında gezmeyeceksiniz o zaman. Bu tablo belki size yardım eder.
A | B | A & B | A | B | A ^ B | !A | A == B | A != B |
true | true | true | true | false | false | true | false |
true | false | false | true | true | false | false | true |
false | true | false | true | true | true | false | true |
false | false | false | false | false | true | true | false |
"Peki neden || ile |, && ile & var. Birer tane yeterli değil miydi?" derseniz cevabı çok basit. Java'nın üstünlüğü. Java pek çok programlama dilinde var olmayan bir özelliğe sahip. Kısa devre operatörleri. AND için birincinin false olduğu ve OR için birincinin true olduğu durumlarda cevap sırası ile false ve true olarak çıkacaktır. Hesap yapmak gereksizdir. Bu yüzden || ve && kullanılan durumlarda eğer birinci durum cevabı veriyorsa ikinci durum incelenmez ve bu olay karmaşık durumlarda programınızın hızını ciddi derecede arttırır.
Özel Mantıksal Opeatör : ?
Bu geri zekalı soru işaretini niye koydu demeyin. Operatörümüz soru işareti ve sizsiniz geri zekalı. Bu operatörün özelliği mantıksal karşılaştırma yapıp aritmetik atama yapmasıdır. Temel yapısı;
x=deyim1 ? deyim2 : deyim3;
şeklindedir. deyim1 bir boolean değerliliği olup deyim2 ve deyim3 bir aritmetik değerdir. deyim1 true ise x=deyim2 ve deyim1 false ise x=deyim2 dir. Bunu tek bir sayının değerini kontrol eden if-else komutu olarak düşünebilirsiniz. Örnek
int a;
int b;
int c;
...
c = a < b ? 2 : 3;
Bu program aşağıdakinin aynısıdır.
if(a < b){
c=2;
}else{
c=3;
}
Sizce hangisi daha kolay. Bence kesinlikle ikincisi.
İkilik Taban Operatörleri
Bunları büyük ihtimal hiçbir zaman kullanmayacaksınız o yüzden bakmadan geçmeniz sorun olmaz ve çok kafa karıştırıcıdır. Kalmaya mı karar verdiniz? Tebrikler, cehennemime hoş geldiniz. Alakasız olduğu için 0 ayrıntı ile geçicem. Sorular firat@sibnetz.com'a. true ve false lar aynı zamanda 1 ve 0 olarak ifade edilebilirler. Ne rastlantı, sayılar da ikilik tabanda 0 ve 1 olarak yazılabilir. Programlama yapıyorsanız rastlantılara inanmayın. Biz sayıların 0 ve 1 değerlerini mantıksal operatörler kullanarak işleyebiliyoruz. Tek fark ! yerine ~ kullanmamız. Nasıl mı? Şovun tadını çıkarın.
00101010
~00101010 = 11010101
_____________________________
00101010 = 42
00001111 = 15
00101010 & 00001111 = 00001010 = 10
_____________________________
00101010 | 00001111 = 00101111 = 47
_____________________________
00101010 ^ 00001111 = 00100101 =37
Ekrana anlamsızca bakanlar. Kaçmak için geç değil çünkü yeni başladık.
Kaydırmalar
Kaydırmalar 4 çeşittir. Karşınızda (davul sesleri) tablo.
Kaydırma | İşlevi |
>> | Sağa Kaydırma |
>>> | Sağa Sıfır Doldurarak Kaydırma |
<< | Sola Kaydırma |
<<< | Sola Sıfır Doldurarak Kaydırma |
Anlamadınız mı? Kaçın. Ama yeterine cesur olanlara açıklayacağım. Kısaca
64(0100 0000)<<2 = 256(1 0000 0000)
Kısacası her sola kaydırmada sayı 2 ile çarpılır.
35(0010 0011)>>2 = 8(0000 1000)
Her sağa kaydırmada sayı 2 ye bölünür ve kalan atılır.
Eğer sayı negatif ise ilk basamak 1 dir ve bu basamak kaydırmadan etkilenmez. Örnek
11111000(-8) >> 1 = 111111000(-4)
Ama bu kural <<< ve >>> için geçerli değildir. Örnek
11111111 11111111 11111111 11111111(int -1)
>>>24
00000000 00000000 00000000 11111111(int 255)
Her değerlilik tipnin(int,byte,long...) ikilik düzeni farklı olup bu konudaki araştırmayı size bırakıyorum. Araştırmanızı firat@sibnetz.com'a adınızla birlikte yollarsanız ilk 10 araştırmadan en beğendiğimi sizin adınız altında yayınlayacağım. Merak etmeyin yazının sonunda tekrarlayacağım.
Operatör Önceliği
İlk okul mezunları işlem önceliğini görmüştür. Java'da da bu öncelik ve parantezlerin kullanımı mevcuttur. Bu öncelik sırası aşağıda mevcuttur.
En Yüksek | ||||
++(sonek) | --(sonek) | |||
++(önek) | --(önek) | ~ | ! | tip ataması |
* | / | % | ||
+ | - | << | ||
>> | >>> | < | <= | |
> | >= | |||
== | != | |||
& | ||||
^ | ||||
| | ||||
&& | ||||
|| | ||||
? | ||||
= | ||||
En Küçük |
Anlamayanlar kafalarına göre takılsın. Ya tutarsa.
Yarışma
Bu kendi çapımda düzenlediğim bir etkinlik. Daha büyükleri için Yarışma Anketinden Java'yı seçmeyi unutmayın. Kimsenin bakmadığı İkilik Taban Operatörleri başlığında gördük ki sayılar ikilik tabanda ifade edilebiliyor. Ve her değerlilik türü(byte, int, long...) için farklı. Bununla ilgili araştırmalarınızı firat@sibnetz.com'a yollayın. İlk 10 araştırmadan en beğendiğimi sizin adınız altında yayınlayacağım. Sorularınız, merak ettikleriniz, önerileriniz ve araştırmalarınız için bana firat@sibnetz.com'dan ulaşabilirsiniz.
Fırat Ağış
QERGH
Harrah's Cherokee Casino Hotel - Mapyro
YanıtlaSilHarrah's Cherokee 전라북도 출장안마 Casino Hotel is located 하남 출장안마 in the beautiful Great Smoky Mountains of Western North Carolina. The Cherokee Casino 사천 출장마사지 is owned by 논산 출장마사지 the Eastern Band of Cherokee 안동 출장안마 Indians