Admin
Mesaj Sayısı : 215 Kayıt tarihi : 10/04/10 Yaş : 34 Nerden : Bilginler Forum'dan
| Konu: Java Programlama Teknikleri ( Degiskenler, Dongüler! ! ! Perş. Nis. 29, 2010 8:35 am | |
| Yazacaginiz Java programlami icerisinde kullandiginiz degiskenleri tanimlamaniz gerekir. Degisken isimleri bir harf (türkce karakterler G,Ü,S,C,I,O,g,ü,s,c,i,o kullanmayin), bir alt cizgi(_) veya $ isareti ile baslayebilirler. Baslangic harfinden sonra rakamlar da kullanilabilir. Degiskenlerde dikkat etmeniz gereken husus Java dilinin kücük/büyük harf ayirimi yapmasidir. Buna gore üc harften 8 ayri degisken ismi üretilebilir. Bir ornek asagida verilmistir:
abc abC aBc aBC Abc AbC ABc ABC
Bu degiskenlerin her biri farkli bir degisken olarak algilanmaktadir.
Kullanilan degisken türleri :
TürüBoyutuAlt SinirÜst Sinirboolean1 bittruefalse byte8 bit-128+127short16 bit-3276832767int32 bit-21474836482147483647 long64 bit-92233720368547758089223372036854775807 .string........Degisik boyutlar char16 bit1 byte'lik karekter
Tanimlamalari yaparken once degisken türü , sonra degisken adi yazilir. Ayni türden degiskenler yanyana siralanabilir. Asagida birkac gecerli degisken tanimlama ornegi verilmistir: char basilanTus; int tutar,kdv,toplam; Ayrica bir degiskenin baslangic degeri tanimlama sirasindada belirlenebilir:int a=700,b=18; gibi. Yukaridaki standart degisken türlerinin yaninda class degiskenleride bulunur. Ornegin: Font yatikfont; Graphics graf; tanimlamalari class degiskenlerine ornektir.
Son olarakta tabela tanimlamalarini unutmamak gerekir. Tabela tanimlamalari yaparken ya degisken türünden yada degisken isminden sonra koseli parantezler kullanilmalidir, fakat koseli parantezler arasina bosluk konmayacaktir. int noktalar[];veya int[] noktalar; gecerli tabela tanimlamalaridir. Tabela kullanimindan once new komutu ile, tabelanin kac elaman icerebilecegi sisteme bildirilmelidir:
int[] noktalar=new int[30]; satiri ile tabelanin icine 30 degisikm elaman yerlestirilebilecegi belirtilmistir.Tabela tanimi sirasinda tabela icerigide belirlenebilir. Ornegin: String[] takimlar={"Besiktas","Galatasaray","Tarbzonspor"," Balikesirspor","Fenerbahce"};
orneginde hem dizinlerden olusan bir tabela tanimlaniyor, hem bu tabelanin 5 elamani oldugu belirleniyor, hem de bu tabelanin 5 elamaninin iceriklerine degisik degerler veriliyor.
Reserve Sozcükler
Asagidaki sozcükler Java sistemi tarafindan kullanildiklarindan degisken isimleri olarak gecerli degildirler:
abstractdoimplementspackcagethrow booleandoubleimportprivatethrows breakelseinnerprotectedtransient byteextendsinstanceofpublictry casefinalintrestvar castfinallyinterfacereturnvoidcatchfloatlongshortv olatile charfornativestaticwhile classfuturenewsure constgenericnullswitch continuegotooperatorsynchronized defaultifouterthis
Aciklamalar
Profesyonel programcilar yazdiklari program komutlari arasina bol miktarda aciklama yerlestirirler. Amotorce program yazanlar ise 'nasilsa herseyi hatirlarim' gibi bir düsünceyle program satirlari arasinda aciklama kullanmazlar. Java programlarinda aciklama yazabilmenin iki yolu vardir.
Birbirini takip eden iki taksim isaretinin saginda bulunan yazilar Java derleyicisi tarafindan onemsenmezler. Ornegin:
//Asagidaki komut bir dikdortgen cizmektedir. graf.drawRect(15,15,150,100); //Asagidaki komutla bir dikdorgenin ici doldurulmakta graf.fillRect(15,15,150,100);
Ayni aciklama asagidaki sekildede olabilir. graf.drawRect(15,15,150,100); //Dikdortgen cizimi graf.fillRect(15,15,150,100); //Dikdortgenin icini doldur Bu tür aciklama satiri yalnizca bir bir satir icin gecerlidir. Birkac satira yayilmasi gerekiyorsa, her satirin basina // isareti konmalidir. Ikinci yontem ise /* sembolü ile */ sembolü arasinda kalan tüm yazilar aciklama satiri olarak algilanmaktadir. Ornegin asagida /*Burada kare cizilmekte ve ici boyanmaktadir....*/ iki satira yayilmis bir aciklama gorülüyor.
Aciklamalar icin her iki yontemide kullanabilirsiniz.
if - else
Bir programlama dilinin en onemli komutu olan [size=9]if komutu ile cesitli karsilastirmalar yapilabilir, ve program akisi karsilastirmanin sonucuna gore yonlendirilebilir. Yapilmasi istenen karsilastirma parantez icinde yazilir ve if sozcügünden sonra yer alir.
if (a == b) graf.drawString("A=B",15,60);
Program satiri ile eger a degiskeninin degeri b degiskeninin degerine esitse ekranda A=B yazisi belirir. Eger iki degiskenin degerleri birbirlerine esit degilse hicbir sey yapilmaz.
if (a == b) graf.drawString("A=B",15,75); if (a < b) graf.drawString("A<B",15,75); if (a > b) graf.drawString("A>B",15,75);
Program komutlarinda eger a degiskeninin degeri b degiskenine esitse ekranda A=B ,Kücükse A<B, Büyükse A>B yazisi cikar.Ayni islem asagidaki komut satiri ilede gerceklestirilebilir.
if (a == b) graf.drawString("A=B",15,75); else { if (a < b) graf.drawString("A>B",15,75); else graf.drawString("A>B",15,75); }
do while Dongüsü
Bu program tekniginde { } parantezleri arasinda kalan kisim icindeki komutlar, Bu program teknigine Postchecked Loops adi verilir. Baska bir terimle once blok icindeki program satirlari icra edilir ve ondan sonra bir karsilastirma yapilir. Asagida bunun bir ornegini gorüyorsunuz.
[size=9] i=0;
do { i++; System.out.println("Herkese MERHABA"); } while(i<10);
Yukaridaki mantiga gore do sozcügünü takip eden ve { } parantezleri ile sinirlanan blok icindeki komutlar en az bir kez isletilmektedir. Cünkü dongüden cikis karsilastirmasi bu komutlar isletildikten sonra yapiliyor.
For Dongüleri
Java'da For dongüleri diger programlama dillerinden biraz farklidir. Genelde for sozcügünden sonra parantez icinde baslangic degeri, karsilastirma ve baslangic degerinin degisim sekli belirtilir. Asagida bir ornegi verilmistir:
[size=9] import java.awt.*; import java.applet.*;
public class yaz extends Applet { public void paint(Graphics yazi) { int i, y; y = 10; for ( i = 1; i < 10; i =i+1 ) { yazi.drawString("Herkese MERHABA",5, y); y = y + 20; } } }
<applet code="yaz.class" align="left" hspace="0"width="150" height="200"></applet>
Yukaridaki ornekte dongü sayaci olan i degiskeninin dongü oncesi baslangic degeri bir'dir. Dongü i degiskeninin degeri 10'dan ufak oldugu sürece { } parantezleri ile sinirli olan blok icindeki komutlar isletilecek ve her isletimden sonra i degiskeninin degeri 1 artacaktir. Degisken i'nin degeri 10 degerini gectigi anda dongü sona erecektir. Yukaridaki programin sonucunu yanda gormektesiniz.
switch Karsilastirmalari
Bir cok program mantigi icinde bir degiskenin degerine gore belirli islemler yapilir. Bu alanda en cok kullanilan teknik if ...else teknigidir. Fakat ardarada bu teknigi kullanmak programin okunurlugunu zorlastirabilir.
[size=9] if (x==1) y=a+b; else if (x==2) y=c+d; else if (x==3) y=a+c else if (x==4) y=a+d;
seklinde yazilmis bir program mantigi istenileni yerine getirebilir. Fakat asagidaki yazim tarzi ile karsilastirilacak olursa Switch kullanim rahatligi hemen goze carpar:
switch (x) { case 1: y = a + b; break; case 2: y = c + d; break; case 3: y = a + c; break; case 4: y = a + d; break; }
Yukaridaki yazim tarzinda x degiskeninin degerine gore mantik case sozcügünü takip eden degere gore akimini sürdürüyor. Ornegin x'in degeri 3 ise, yalnizca y=a+c; komutu icra edilir. Ilk break sozcügünden sonra program switch mantigini terkediyor. Asagida ayni teknigin daha degisik bir kullanim ornegi gorülmektedir:
switch (x) { case 2: case 4: case 6: case 8: System.out.println("x'in degeri bir cift sayidir"); break; default: System.out.println(x'in degeri bir tek sayidir"); }
Bu ornekte x degiskeninin degeri 2, 4, 6 veya 8 oldugunda program x'in degeri bir cift sayidir mesajini verir. Tüm diger kosullarda program akisi default: baslikli satirdan devam eder.
break ve continue
Dongü teknikleri icinde bazi anlarda dongü sayisi bastan belirlenmeden once dongüyü terketmek gerekebilir. Bu gibi kosullarda break komutundan yararlanilir. Bu teknik tüm [size=9]for, while ve do..while dongüleri icin gecerlidir.
i=0; while (1<1000){ if (y>100) break; y=y+x; i++ }
Yukaridaki ornekte dongü, i degiskeninin degeri 1000 den ufak oldugu sürece devam edecek. Fakat y degiskeninin degeri 100'den büyük olursa, i degeri ne olursa olsun dongü sona erer.
Belirli bir kosulda normalde sona ermesi gereken dongünün devamini saglamak icin ise continue komutundan yararlanilir. Calisma teknigi, break tekniginin tam tersidir. Gerek break gerekse continue komutlarinin yaninda bir atlama adresi bulunabilir. Asagida bunun bir ornegini gormektesiniz:
i=0; while (i<1000) { if (y>100) break devamEt; y=y+x; i++; }
z=0; devamEt; z=z+y;
Ornekte dongü icinde y degiskeninin degeri 100'den fazla olmadigi sürece, dongü normal olarak sona eriyor ve z=0 komutunu icra ediyor. Buna karsilik eger dongü icinde y degiskeninin degeri 100'ü gecerse, dongü derhan sona eriyor ve program akisi devamEt baslikli satirina sicriyor ve z=0 komutu icra ediliyor. [/size][/size][/size][/size][/size] | |
|