22 Nisan 2012 Pazar

DEYİM ve DÖNGÜLER

Deyim ve Döngü Nedir, Ne İşe Yarar ?


   Döngüler, bir işi, belirlediğimiz sayıda yapan kod bloklarıdır. Örneğin, ekrana 10 kere "Merhaba JAVA" yazan bir programda, "Merhaba JAVA" yazdıran kodu, aslında tek bir defa yazarız ve döngü burada devreye girip, bizim için bu kodu istediğimiz sayıda tekrarlar. 
 
   Deyimler, belirli bir şart sağlandığında, program akışını kendi faaliyet alanına çeviren komutlardır.

  Şimdi de döngü ve deyim çeşitlerine değinelim...



IF Deyimi

IF deyimi, belli bir şart sağlanması durumunda, program akışını kendi faliyet alanı içerisine yönlendirir. Kendi faliyet alanının en son satırına kadar kodları çalıstırır ve daha sonra da program akışı, if deyiminin faliyet alanının bittiği yerden devam eder. Şimdi bunu bir örnekle açıklayalım...

Kullanımı: 
if(koşullar)
{
yapılması gerekenler
}

else
{
ilk koşulun doğru olmaması durumunda yapılması gerekenler
}
















Kullanıcı adı ve Şifre adında iki tane string değişken tanımladık ve değerlerini atadık. Kullanıcı adı ve şifreyi, kullanıcıdan girmesini istedik ve bunu string türündeki girilenKullaniciAdi ve girilenSifre değişkenlerine atadık. Daha sonra girilen kullanıcı adı ve şifreyle, bizim tanımlamış olduğumuz kullanıcı adı ve şifreyi equals() komutuyla eşit mi diye sorgulattık. Eşit olması durumunda ilk blok çalışacak, olmadığı zaman yani else durumunda ikinci bok çalışacak. Bizim programımızda doğru girdiğimiz için ilk blok çalıştı.

___________________________________________________________________________

NOT: İlk derslerimizde de bahsetmiştik, JAVA büyük-küçük harf duyarlıdır. Biz kullanıcı adı kısmına küçük harflerle numan yazsaydık ve şifre aynı kalsaydı yine hata verecekti, çünkü kullanıcı adı tanımlamamızı ilk harfi büyük tanımladık.
___________________________________________________________________________




SWITCH(){ CASE } Deyimi:

Bu deyimi, birden fazla if deyimi kullanmaya benzetebiliriz. Tek farkı, örneğin yazdığımız programda kullanıcıdan bir giriş isteyip, kullanıcının gireceği  4 değerden, biz olası her değer için bir işlem yaptırabiliriz.Şimdi deyimin kullanımını inceleyelim...



   


İlk önce değer adında string bir değişken oluşturduk ve kullanıcıdan aldığımız değeri bu değişkene atadık. Sonra integer türünde bir sayi değişkeni oluşturduk, kullanıcıdan aldığımız deger değerini integere çevirdik ve bunu sayi değişkenine atadık. Daha sonra bu sayi değişkenini koşul koayarak switch-case komutumuzu çalıştırdık. Case: 'in yanına yazdığımız sayılara göre gerekli işlemler yapılacak ve break komutuyla switch-case 'den çıkacak. Break yazmasaydık sırasıyla bütün komutlar çalışacak ve bütün mesajları ekrana yazdıracaktı. koyduğumuz koşul dışında bir durum oluşursada default: komutu devreye girecek ve hata mesajımızı verecek.



FOR Döngüsü:

for( <ilk deger> ; <kosul> ; <arttırma-azaltma değeri> )

İlk deger ile başlayan döngü ile program for bloguna girdikten sonra, blogun sonuna geldiginde kosulun
saglanıp saglanmadıgını kontrol edecek ve kosul saglanıyorsa arttırma-azaltma değerini ni gerçekleştirip tekrar döngüye girecektir.

Bir örnekle açıklayalım...














for döngüsü içinde, integer türünde bir i değişkeni oluşturduk ve başlangıç değeri olarak belirledik. Daha sonra bu değerin kaça kadar artacağını belirledik. En son olarakta kaçar kaçar arttırılacağını belirledik. i++; i 'yi 1 arttır demek.


WHILE Döngüsü

if döngüsüyle aynı işlevi görür. Tek farkı, koşul sağlandığı sürece döngüye girer.













Burada dikkat etmemiz gereken husus, döngü içindeyken i 'nin değerini değiştirmemiz. Eğer biz oraya i++ yazmamış olsaydık, i 'nin değeri hep 0 olacak ve i, 5 'ten küçük olduğu için de sonsuz bir döngüye girecek.

12 Nisan 2012 Perşembe

Değişkenlerin Türlerinin Değiştirilmesi (Cast)

Bazı durumlarda, farklı türden değişkenlerin birbirleriyle işleme girmeleri ve bir türe ilişkin bir değerin aynı olmayan türde bir değiskene atanması gibi islemler gerekebilir. Bu tür durumlarda tür dönüşümü (cast) devreye girer. Şimdi bu tür dönüşümünün nasıl kullanıldığını resimlerle inceleyelim...

Kullanımı: Değişken Türü değişken adı= (tür dönüşümü yapacağımız değişken türü) değişken adı

Aşağıdaki örnek daha açıklayıcı olacaktır...

İlk önce Double tipinde bir a değişkeni tanımladık ve 15.35 değerinin atadık. Daha sonra, integer tipinde bir c değişkeni tanımladık ve a değişkenindeki değeri c değişkenindeki değere atamaya çalıştık. a değişkeni Double olduğu için integer değere atarken tür dönüşümü (cast) yapmamız gerekti, eğer bunu yapmasaydık programımız hata verecekti.












Her zaman yukardaki örnekte olduğu gibi tür dönüştürme operatörünü kullanmak zorunda değiliz, tür dönüşümlerine ait bazı özel metodları da kullanabiliriz. Bunlardan bazılarını örnek verecek olursak;

__________________________________________________________________
Integer.parseInt(5) = Parantez içinde verilen String türündeki değeri integer 'e çevirir.
Integer.toString(5) = Parantez içerisinde verilen int türünü String 'e çevirir.
Double.parseDouble(5) = Parantez içerisinde verilen int türünü Double 'a çevirir.
Double.toString(5.21) = Parantez içerisinde verilen double türünü String 'e çevirir.
__________________________________________________________________

Şimdi de bunların kullanımını bir örnekle açıklayalım...

İlk önce String türünde bir a değişkeni tanımladık ve "5" değerini verdik. Daha sonra integer türünde b değişkeni tanımladık ve ona da 5 değerini verdik. Son olarak String türünde sonuc değişkeni tanımladık ve a ile b 'nin toplamını atadık. Programı çalıştırıp tür dönüşümü yapmadan önceki sonucumuzu görelim.










Görüldüğü gibi sonuç 10 olması gerekirken 55 çıktı. Bunun nedeni, + operatörü yalnızca sayısal değerlerin toplanmasında kullanılır. Diğer türlerde kullandığımız zaman toplama değil birleştirme yapar.

Şimdi de tür dönüşümü yaptıktan(cast) sonraki sonucumuzu görelim...












Bu sefer sonucumuz 10 çıktı. Çünkü, String türündeki değişkenimizi Integer.parseInt(a) komutuyla integer türüne dönüştürdük(cast ettik) ve iki integer türündeki değişkeni toplamış olduk.

Operatörler

Operatörler, sayısal ya da mantıksal ifadelerin birbirleri ile işleme sokulmasını sağlayan araçlardır. Operatörler, sayısal hesaplamaların yapılması, sayısal olmayan değerlerin ve kelimelerin karşılaştırılması, eşitliklerin sağlanması gibi durumlarda kullanılabilirler. Aşağıdaki resimlerde bu operatörlerin ne amaçla ve nasıl kullanıldığını inceleyelim...


Matematiksel işlem yaparken kullanacağımız bazı operatörler...


İki integer değeri karşılaştırırken kullanacağımız ==(eşittir) operatörü. Burada dikkat etmemiz gereken nokta, tek eşittir(=) ile değil çift eşittir(==) ile kullanmamız.











İki string değeri karşılaştırırken kullanacağımız equal operatörü.

NOT: String değerleri karşılaştırılırken, integer değerlerde kullanılan == operatörü değil, stringDeger.equal(stringDeger) operatörü kullanılır.











&& (ve) operatörü, mantıksal işlemlerde kullanılır. Operatörün her iki tarafındaki değer doğru ise doğru sonucunu üretecektir. Ancak sağ ya da sol taraftan en az bir tanesinin yanlış olması, kıyaslama sonucunun yanlış olmasına yetecektir.










|| (veya) operatörü de her iki taraftan en az bir tanesinin doğru olması durumunda doğru, her iki tarafında yanlış olması durumunda yanlış sonucunu döndürecektir.