Download as pdf or txt
Download as pdf or txt
You are on page 1of 62

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

NesnelerdeAtama.java

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 ?

IlkelPas.java
Altu B. Altnta 2003 Java ve Yazlm Tasarm - Blm 2

Pas.java
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.

+ * / %

AritmetikOrnek.java
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

OperatorTest.java
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 .

IlkelDonusum.java

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.

OtomatikCevirim.java

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

OtomatikArtveAz.java

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

IliskiselDeneme.java

Altu B. Altnta 2003

Java ve Yazlm Tasarm - Blm 2

22

Nesnelerin Karlatrlmas

Nesnelerin eit olup olmad (= =) veya (! =) operatrleri ile test edilebilir mi ?

Denklik.java (*)

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?

IntIcinDenklik.java

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

KosulOp.java

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

WhileOrnek.java

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

WhileDoOrnek.java

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

ForOrnek.java

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 ; System.out.println("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

IfElseTest.java

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.

KisaDevre.java

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: System.out.println("Ocak"); break; case 2: System.out.println("Subat"); break; case 3: System.out.println("Mart"); break; case 4: System.out.println("Nisan"); break; case 5: System.out.println("Mayis"); break; case 6: System.out.println("Haziran"); break; case 7: System.out.println("Temmuz"); break; case 8: System.out.println("Agustos"); break; case 9: System.out.println("Eylul"); break; case 10: System.out.println("Ekim"); break; case 11: System.out.println("Kasim"); break; case 12: System.out.println("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

{ System.out.println("Ocak"); System.out.println("Subat"); System.out.println("Mart"); System.out.println("Nisan"); System.out.println("Mayis"); System.out.println("Haziran"); System.out.println("Temmuz"); System.out.println("Agustos"); System.out.println("Eylul"); System.out.println("Ekim"); System.out.println("Kasim"); System.out.println("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: System.out.println("Ocak"); break; case 2: System.out.println("Subat"); break; case 3: System.out.println("Mart"); break; case 4: System.out.println("Nisan"); break; case 5: System.out.println("Mayis"); break; case 6: System.out.println("Haziran"); break; case 7: System.out.println("Temmuz"); break; case 8: System.out.println("Agustos"); break; case 9: System.out.println("Eylul"); break; case 10: System.out.println("Ekim"); break; case 11: System.out.println("Kasim"); break; case 12: System.out.println("Aralik"); break; default: System.out.println("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

BreakTest.java

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

BreakTestEtiketli.java

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

ContinueTest.java

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

ContinueTestEtiketli.java

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

You might also like