Javada Program Denetimi ve Operatrler
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
Atamalar
int a ; a=4 ; // doru bir atama 4=a ; // yanl bir atama!
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
Temel (Primitive) Tiplerde Atama
int a=4 b=5 a=b
a, b ; ; ; ;
Sonu : a=5, b=5
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
Nesneler ve Atamalar
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
Sonu
1: s1.i: 9, s2.i: 47 2: s1.i: 47, s2.i: 47 3: s1.i: 27, s2.i: 27
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
ekil
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
Dosya simleri
Fiziksel dosya ismi ile public snfn ismi ayn olmal.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
Yordam (Method) armlar
Yordamlar parametre alrlar. Alnan bu paremetreler ile yordam ierisinde ilemler gerekleir. Peki yordamlara parametre olarak ne gitmektedir ? Nesnenin kendisi mi ? Yoksa nesneye bal referans m ?
[Link]
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2
[Link]
8
java Operatrleri
Operatrler programlama dillerinin en temel ilem yapma yeteneine sahip simgesel isimlerdir. Aritmetik Operatr likisel Operatr Mantksal Operatrler Bit dzeyinde (bitwise) Operatrler
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
java Operatrleri
Operatrler bir veya daha fazla deiken zerinden ilemler gercekletirirler. lem gerekletirmek iin tek bir deikene ihtiya duyan operatrlere tekli operatr (unary operator) lem gerekletirmek iin iki deikene ihtiya duyan operatrlere ikili operatr (binary operator) lem gerekletirmek iin adet deikene ihtiya duyan operatrlere ise l operatr (ternary operator) denir (bir adet var).
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2 10
Aritmetik Operatrler
Operatr Kullanl
deiken1 + deiken2 deiken1 deiken1 * deiken1 / deiken1 % deiken2 deiken2 deiken2 deiken2
Aklama
deiken1 ile deiken2 yi toplar deiken1 ile deiken2 yi karr deiken1 ile deiken2 yi arpar deiken1 ,deiken2 tarafndan blnr deiken1 in deiken2 tarafndan blmnden kalan hesaplanr.
+ * / %
[Link]
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2 11
+ ve Operatrleri
Operat r Kullanl ekli
Aklama Eer deiken char, sekizli (byte) veya short tipinde ise int tipine dntrr. Deikenin deerini negatif yapar (-1 ile arpar).
+ deiken
- deiken
[Link]
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2 12
Dntrme (Casting) lemi
Bir temel (primitive) tip, dier bir temel tipe dntrlebilir, fakat oluacak deer kayplarndan kodu yazan kii sorumludur .
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
13
String (+) Operatr
+ operatr String tiplerde birletirme grevi grr. Eer bir ifade String ile balarsa , onu takip eden tiplerde otomatik olarak String nesnesine dntrlr.
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
14
Uygulamann kts
Sonuc = 012 String bir ifadeden sonra gelen tamsaylar grld zere toplanmad. Direk String nesnesine evrilip ekrana kt olarak gnderildiler.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
15
Bir Arttrma ve Azaltma
Java dilinde C dilinde olduu gibi birok ksaltmalar vardr. Bu ksaltmalar hayat bazen daha gzel bazen ise ekilmez klabilir.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
16
Bir Arttrma ve Azaltma Tablosu
Kullanl ekli deiken++ ++deiken deiken---deiken
Operatr ++ ++ ---
Aklama nce deikenin deerini hesaplar sonra deikenin deerini bir arttrr. nce deikenin deerini arttrr sonra deikenin deerini hesaplar. nce deikenin deerini hesaplar sonra deikenin deerini bir azaltr. nce deikenin deerini azaltr sonra deikenin deerini hesaplar.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
17
Uygulama
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
18
Uygulamann kts
i ++i i++ i --i i-i
Altu B. Altnta 2003
: : : : : : :
1 2 2 3 2 2 1
19
Java ve Yazlm Tasarm - Blm 2
likisel Operatrler
likisel operatrler iki deeri karlatrarak bu deerler arasndaki mantksal ilikiyi hesaplarlar. rnein iki deer birbirine eit deilse 5==8
Bu iliki erevesinde hesaplanan deer false olacaktr.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
20
likisel Operatrler Tablosu
Operatr
> >= < <= == !=
Altu B. Altnta 2003
Kullanl
deiken1 > deiken2 deiken1 >= deiken2 deiken1 < deiken2 deiken1 <= deiken2 deiken1 == deiken2 deiken1 != deiken2
Java ve Yazlm Tasarm - Blm 2
true deeri dner eer ki...
deiken1 , deiken2'den bykse deiken1 , deiken2'den bykse veya eitse deiken1 , deiken2'den kkse deiken1 , deiken2'den kkse veya eitse deiken1 , deiken2'ye eitse deiken1 , deiken2'ye eit deilse
21
Uygulama
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
22
Nesnelerin Karlatrlmas
Nesnelerin eit olup olmad (= =) veya (! =) operatrleri ile test edilebilir mi ?
[Link] (*)
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
23
Uygulamann kts
false true
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
24
Uygulama
Peki bir nceki rnei Integer nesneleri yerine temel tip olan int tipini kullansaydk sonu nasl olurdu?
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
25
Mantksal Operatrler
Mantksal operatrler birden ok karlatrma ileminin birletirip tek bir koul ifadesi haline getirilmesi iin kullanlr.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
26
Mantksal Operatrler Tablosu
Operatr
&&
Kullanl ekli
deiken1 && deiken2
true deeri dner eer ki........
Eer hem deiken1 hemde deiken2 true ise ; (deiken2'yi duruma gre hesaplar*) deiken1'in veya deiken2'in true olmas ;( deiken2'yi duruma gre hesaplar*) Eer deiken false ise Eer hem deiken1 hemde deiken2 true ise ; deiken1'in veya deiken2'in true olmas ;
Eer deiken1 ve deiken2 birbirlerinden farkl ise; r: deiken1 true ,deiken2 false ise*
27
||
deiken1 || deiken2
! & | ^
! deiken deiken1 & deiken2 deiken1 | deiken2 deiken1 ^ deiken2
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
Uygulama
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
28
Uygulamann kts
(a < (a < ! (a (a < (a < (a <
b) && (c < d) --> false b) || (c < d) --> true < b) --> false b) & (c < d) --> false b) | (c < d) --> true b) ^ (c < d) --> true
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
29
Ksa Yollar
i = i + 1 ; yerine. i += 1 ; kullanlabilir. i = i * 1 ; yerine i *= 1 ; kullanlabilir. ......
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2 30
Kontrol fadeleri
Kontrol ifadeleri bir uygulamann hangi durumlarda ne yapmas gerektiini belirtir. Java programlama dilinde toplam 4 adet kontrol ifade eidi bulunur.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
31
Kontrol fadeleri Tablosu
fade Tipi
Dng Karar verme Dallandrma stisna yakalama
Anahtar Kelime
while, do-while , for if-else, switch-case break, continue, label, return try-catch-finally, throw
Java ve Yazlm Tasarm - Blm 2 32
Altu B. Altnta 2003
Dng - while
while ifadesi, almas istenen kod blounu, durum true ifadesini bulana kadar devaml olarak altrr.
while (koul) { ... almas istenen kod blou }
Dngye Giri
lem N
koul
lem 1
Dngden k
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
33
Uygulama
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
34
Uygulamann kts
i = 0 i = 1 i = 2 i = 3 i = 4 i = 5 i = 6 i = 7 i = 8 i = 9 Sayma islemi tamamlandi.
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2 35
Dngleme do while
do-while ifadesi, koulu en yukarda deil de en aada hesaplar. Bylece do-while ifadesinde durum false olsa bile almas istenen kod blouna en az bir kere girilir.
D ngye G ir i
le m
[Link]
le m N
koul
D ngden k
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
36
while
Dngs Kullanrken Dikkat Edilmesi Gereken Hususlar
1. 2. 3.
Dng kontrol deikenine uygun bir ekilde deer atandna dikkat edilmeli. Dng durumunun true ile balamsna dikkat edilmeli. Dng kontrol deikeninin uygun bir ekilde gncellendiinden emin olunmas gerekir (sonsuz dngye girmemesi iin) .
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
37
Dngleme for ifadesi
Dngnn ne zaman balayaca ve ne zaman bitecei en bata belirtilmitir.
Dngye Giri
for (balang; koul; art) { almas istenen kod blou }
balang
artm
lem N
koul
lem 1
Dngden k
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
38
Uygulama
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
39
for le Sonsuz Dng
for ( ; ; ) { ... }
// sonsuz dng
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
40
Uygulamann kts
i i i i i i i i i i
= = = = = = = = = =
0 1 2 3 4 5 6 7 8 9
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
41
for - oklu Deiken
public class ForOrnekVersiyon2 { public static void main(String args[]) { for ( int i = 0 , j = 0 ; i < 20 ; i++ , j++ ) { i *= j ; [Link]("i = " + i + " j = " + j); } } }
i i i i i
Altu B. Altnta 2003
= = = = =
0 1 4 15 64
j j j j j
= = = = =
0 1 2 3 4
42
Java ve Yazlm Tasarm - Blm 2
Karar Verme - if
if (koul) { durum true olduunda almas istenen kod blou } else { durum false olduunda almas istenen kod blou }
Hayr
koul ?
Evet
lem 1
lem 2
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
43
Uygulama
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
44
l if-else
boolean-ifade ? deger0 : deger1
Eer boolean ifade true ise deer0 hesaplanr , eer boolean ifade false ise deger1 hesaplanr.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
45
Ksa Devre
if ifadesinde eer VE(&&) ilemi kullanlm ise ve ilk deerden false dnm ise ikinci deer kesinlikle hesaplanmaz nk bu iki deerin sonucunun VE(And) ilemine gre true dnmesi imkanszdr. Ksa devre zellii sayesinde uygulamalar gereksiz hesaplamalardan kurtulmu olur.
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
46
Karar Verme - switch
switch(tamsay) { case uygun-tamsay-deger1 : almas istenen case uygun-tamsay-deger2 : almas istenen case uygun-tamsay-deger3 : almas istenen case uygun-tamsay-deger4 : almas istenen case uygun-tamsay-deger5 : almas istenen // ... default: almas istenen kod blou ; }
kod kod kod kod kod
blou; blou; blou; blou; blou;
break; break; break; break; break;
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
47
Uygulama 1
public class AylarSwitchTest { public static void main(String[] args) { int ay = 8; switch (ay) { case 1: [Link]("Ocak"); break; case 2: [Link]("Subat"); break; case 3: [Link]("Mart"); break; case 4: [Link]("Nisan"); break; case 5: [Link]("Mayis"); break; case 6: [Link]("Haziran"); break; case 7: [Link]("Temmuz"); break; case 8: [Link]("Agustos"); break; case 9: [Link]("Eylul"); break; case 10: [Link]("Ekim"); break; case 11: [Link]("Kasim"); break; case 12: [Link]("Aralik"); break; } } }
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2 48
Uygulama 2
public class AylarSwitchTestNoBreak { public static void main(String[] args) { int ay = 8; switch (ay) case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: } } }
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2 49
{ [Link]("Ocak"); [Link]("Subat"); [Link]("Mart"); [Link]("Nisan"); [Link]("Mayis"); [Link]("Haziran"); [Link]("Temmuz"); [Link]("Agustos"); [Link]("Eylul"); [Link]("Ekim"); [Link]("Kasim"); [Link]("Aralik");
Uygulama 2 - Ekran kts
Agustos Eylul Ekim Kasim Aralik
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
50
Uygulama 3
public class AylarSwitchDefaultTest { public static void main(String[] args) { int ay = 25; switch (ay) { case 1: [Link]("Ocak"); break; case 2: [Link]("Subat"); break; case 3: [Link]("Mart"); break; case 4: [Link]("Nisan"); break; case 5: [Link]("Mayis"); break; case 6: [Link]("Haziran"); break; case 7: [Link]("Temmuz"); break; case 8: [Link]("Agustos"); break; case 9: [Link]("Eylul"); break; case 10: [Link]("Ekim"); break; case 11: [Link]("Kasim"); break; case 12: [Link]("Aralik"); break; default: [Link]("Heyoo,Aranilan Kosul" + "Bulunamadi!!"); } } }
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2 51
Dallandrma fadeleri
Java programlama dilinde dallandrma ifadeleri toplam 3 adettir.
break ifadesi continue ifadesi return ifadesi
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
52
break fadesi - Etiketsiz
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
53
Uygulama kts
i i i i i i i i i =0 =1 =2 =3 =4 =5 =6 =7 =8 Donguden cikti
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
54
break fadesi - Etiketli
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
55
Uygulama kts i i i i i i i i i =0 =1 =2 =3 =4 =5 =6 =7 =8
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
56
continue fadesi - Etiketsiz
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
57
Uygulama kts
i i i i i i i i i i i i i i i i i i i i i i i i i i i i i =0 =1 =2 =3 =4 =5 =6 =7 =8 =10 =11 =12 =13 =14 =15 =16 =17 =18 =19 =20 =21 =22 =23 =24 =25 =26 =27 =28 =29
9 yok
Donguden cikti
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
58
continue fadesi - Etiketli
[Link]
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
59
Uygulama kts
i i i i i i i i i i i i i i i i i i
Altu B. Altnta 2003
=0 =1 =2 =0 =1 =2 =0 =1 =2 =0 =1 =2 =0 =1 =2 =0 =1 =2
60
Java ve Yazlm Tasarm - Blm 2
return fadesi - Etiketli
Sadece return anahtar kelimesi kullanarak yordamlarn ierisini tavizsiz bir ekilde terk edelebilir.
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
61
Sorular ...
Altu B. Altnta 2003
Java ve Yazlm Tasarm - Blm 2
62