void main() {
/*
Şimdi sıra geldi else if ile çoklu sorgulu olarak yazdığımız blokların daha kısa
bir yazım yoluna. Burada 3 ve daha fazla şartlı kodlarımızı if, else if,
ve else bloklarını hatta kelimelerini bile kullanmadan yazacağız. Bunu daha az
kod yazarak yapacağımız için tabiki bize kolaylık sağlayacaktır.
Şimdi daha önce yaptığımız bir insanın yaşam dönemini bize veren programı burada
kodlayalım. Programa yaş bilgisini veriyorduk ve bize bebek, çocuk, genç, ergen
ve yetişkin değerlerini dönüyordu.
Bunu ilk defa kullanıyoruz. O sebeple detaylı bir açıklamasını yapalım.
önce int tipinde yani tam sayı bir yas isiminde değişken tanımlayıp hemen
aynı satırda değer olarak 30 değerini girdik.
Sonra String isminde sonuc adında bir değişkene eşittir diyoruz ve sorgularımızı
yazmaya başlıyoruz. Bu şu anlama gelmektedir. Sonuç değişkenine yas<1 ile
başlayan ve en son satırında noktalı virgül ile biten bütün bu sogulamanın
sonucunu ata. Text olarak atayacak. Bunu nerden biliyoruz. Değerler tırnak
işareti ile yazılmış.
Devam edelim. ilk sorgumuz yas<1 yazdıktan sonra alt satıra ? soru işareti ile
boşluk atıyoruz ve doğru çıktığında ekrana yazıalcak ifadeyi tırnak içinde
giriyoruz yani bebek. Sonra altsatıra iki nokta üstüste koyup yeni sorguyu yazıyoruz.
Bu sorgumuz yas<4. Bunu yazdıktan sonra alt satıra soru işareti koyarak
tırnak içinde sorgu doğru olunca çalışacak texti yazıyoruz yani çocuk. Sonra
yine iki nokta üstüste koyup yeni sorgumuzu yazıyoruz. yas<12. Alt satıra
soru işareti koyup tırnak içinde genç yazıyoruz. Bu şart doğru çıkarsa
sonuç değişkenine genç değeri atanacak. Sonra alt satıra iki nokta üstüste
koyduktan sonra yeni şartımızı yazıyoruz yas<18. Altsatıra soru işareti koyup
tırnaklar arasına ergen yazıyoruz. Şartlarımız bitti. Şimdi bu durumlardan
hiç biri sağlanmaz ise çalışacak kodu yazmalıyım. Yani else işlemi. Bunun için
alt satıra inip iki nokta üstüste dedikten sonra tırnak içinde yetişkin
yazıyoruz. Hiç bir şart sağlanmaz ise sonuc değişkenine yetişkin değerini ata
demiş oluyoruz. Ve en sonunda noktalı virgül ile bloğu kapatıyoruz. Bloktan
sonra sonuc değişkenini ekrana yazdırmak için print komutunu kullanıyoruz. Tüm
işlemler bitti.
Biraz korkutucu gibi durdu koca bir paragraf açıklama ama alakası yok :).
Çok kolay aslında. Şimdi yukarıdaki açıklamadan daha basit bir açıklama ile
anlatmaya çalışalım.
Şimdi ilk önce String bir değişken tanımladık ki biz sonucu ona atalım en sonunda
onuda print ile ekrana yazdıralım. Bu sonuc değişkenini ilk sorgumuza eşitliyoruz
gibi duruyor aslında ama asıl olan bütün sorgunun sonucunda gelecek texti biz
o sonuc değişkenine aktarmış oluyoruz. İlk şartımızı bu şekilde yazıyoruz.
yas<1 dedik. sonra soru işareti ile doğru mu diye soruyoruz şeklinde düşünebiliriz.
Soru işaretinden sonra doğru ise değişkene atayacağımız text değerini yazıyoruz.
Bundan sonrası tam bir döngü aslında.
: sorgu
? 'text'
Dikkatli bakarsanız hemen yukardaki gibi devam etmekte kodlama. İlki ve en son
else için bişi kullanacaksak onlar hariç arada ister 3 ister 103 tane şart olsun
hepsi bu şekilde yazılıyor. İki nokta üstüste diyoruz sorguyu yazıp sonra alt
satıra soru işareti koyup textimizi tırnak içine yazıyoruz.
Onu da şöyle okuyabiliriz. :(sorgumuz) yas<4 ? (ise bunu ekrana yaz) 'text'
: bunu "sorgumuz" ve ? bunuda "ise ekrana bunu yaz" şeklinde okuyabilirsiniz.
Şimdi son sorgumuzuda bu şekilde yazdıktan sonra else bloğu için sadece iki nokta
üst üste koyup direkt bütün bu şartların dışında bir şey gelirse o zaman
bunu değişkene ata der gibi tırnak içinde texti yazacaksınız. Zaten else de şart
olmaz. Çünkü lazım olan şartları kontrol ettik biz. Eğer bu şartlarda bir değer
gelirse onu da bu şekilde cevapla demiş oluyoruz. En son print ile sonuc
değişkenini ekrana basıyoruz.
Alt satıra diye sürekli belirtiyorum çünkü bir satır şeklinde de yazabilirsiniz
ama kaydet deyince bunu bu şekle sokuyor editör. Bende bu şekilde anlattım daha
kolay alışırız diye.
*/
int yas = 30;
String sonuc = yas < 1
? 'Bebek'
: yas < 4
? 'Çocuk'
: yas < 12
? 'Genç'
: yas < 18
? 'Ergen'
: 'Yetişkin'; //True
print(sonuc);
/*
Şimdi bir de satır satır sadece nasıl okuyoruz onuda gösterelim.
*/
yas = 12;
/*
Yaş değişkeni 12 oldu.
*/
sonuc = yas < 1
/*
sonuc değişkenine tüm sorgunun sonucunu atamaya başladığımız satır. Ve
burada ilk sorgumuzu yazıyoruz.
*/
? 'Bebek'
/*
Üstte yazdık yas<1 ise Bebek. Bu şekilde okunabilir.
*/
: yas < 4
? 'Çocuk'
/*
Aradakileri ikili ikili şu şekilde okuyabiliriz.
yaş küçük 4 ise sonuç Çocuk
*/
: yas < 12
? 'Genç'
/*
yaş küçük 12 ise sonuç Genç
*/
: yas < 18
? 'Ergen' //True
/*
yaş küçük 18 ise sonuç Ergen
*/
: 'Yetişkin';
/*
Üsttekilerden hiç biri gelmezse sonuç Yetişkin olsun.
*/
print(sonuc);
/*
Sonra sonuç değişkenini ekrana bastırıyoruz.
*/
/*
Şimdi bu örneğin sonucunu bir değişkene atamadan da çözebiliriz.
Bunun için string bir değişkene gerek kalmıyor. Çünkü üstteki örneklerde textleri
yazdığımız yere bu sefer direkt printle sonucu yazdıracağız.
Olan işleme bir kez daha bakalım. Üstte ? işaretinden sonra gelmesini istediğimiz
sonucu yazıp bunu bir sonuc adlı değişkene aktarıp en sonunda sonuc değişkenini
ekrana basıyorduk.
Burada ise ekrana basma işlemini direkt yerinde yapıyoruz. Belki bu daha da
anlaşılır olacaktır.
Bu kodu açıklayalım. Önce yas değişkenini sıfıra eşitledik.
Bundan sonra iki satır iki satır açıklama yapalım.
Soru işaretini "ise", iki nokta üstüsteyi de "değilse" olarak okuyabiliriz.
yas<1 ise bebek yaz.
değilse yas<4 ise çoccuk yaz.
değilse yas<12 ise genç yaz.
değilse yas<18 sie ergen yaz.
Son tek satır. Hiç biri değilse yetişkin yaz.
Bu tür kullanımda daha belirgin olarak şunu gördük ikili kullanım olarak
bakınca mantığını daha iyi anlıyoruz.
*/
yas = 0;
yas < 1
? print('Bebek') //True
: yas < 4
? print('Çocuk')
: yas < 12
? print("Genç")
: yas < 18
? print("ergen")
: print("yetişkin");
/*
Şimdiki örneğimiz daha önce yaptığımız sayının sıfır, pozitif veya negatif
olduğunu bulup ekrana yazan kodun kısa gösterim hali olsun. Uzun gösterimine
daha önceki yazılardan bakabilirsiniz.
Şimdi kodu açıklayalım.
sayi -33 atandı.
sayi < 0 ise negatif yaz.
değilse sayi == 0 ise sıfır yaz.
hiçbiri değilse pozitif yaz.
Açıklama bile ne kadar kısaldı :)
*/
int sayi = -33;
sayi < 0
? print("Girdiğiniz sayı negatiftir.") //True
: sayi == 0
? print("Girdiğiniz sayı sıfırdır")
: print("Girdiğiniz sayı pozitiftir");
/*
Şimdi de mevsimlerin ayları ile ilgili yaptığımız örneğimizi kısa
gösterimle yapalım. Bu son örneğimiz olsun. HEm uzun haline hemde kısa haline
aynı anda bakalım. Önce eski stildekini görelim.
*/
String mevsim = "yaz";
if (mevsim == "ilkbahar") {
print("Mart,Nisan,Mayıs");
} else if (mevsim == "yaz") {
print("Haziran,Temmuz,Ağustos"); //True
} else if (mevsim == "sonbahar") {
print("Eylül,Ekim,Kasım");
} else if (mevsim == "kış") {
print("Aralık,Ocak,Şubat");
} else {
print("küçük harfle ve bitişik bir mevsim ismini girin");
}
/*
Yukarda else if ile yazılmış halini gördüğünüz kod bloğunun aşağıda
zincirleme halini görüyorsunuz. Kodları hızlıca açıklayalım.
mevsimi kış yaptık.
mevsim ilkbahar ise ayları bas
değilse mevsim yaz ise ayları bas
değilse mevsim sonbahar ise ayları bas
değilse mevsim kıs ise ayları bas
hiçbiri değilse uyarı açıklamasını ekrana bas.
*/
mevsim = "kış";
mevsim == "ilkbahar"
? print("Mart,Nisan,Mayıs")
: mevsim == "yaz"
? print("Haziran,Temmuz,Ağustos")
: mevsim == "sonbahar"
? print("Eylül,Ekim,Kasım")
: mevsim == "kış"
? print("Aralık,Ocak,Şubat") //True
: print("küçük harfle ve bitişik bir mevsim ismini girin");
/*
Şimdi bu yazım şekli klasik if else if else yazım şeklinin daha kısa bir hali.
zincirleme şartlar gibi bir şey olabilir bunun adı. Bende tam bilmiyorum :)
Şimdi bunları kullanmakta özgürsünüz. Kodlarınızı yazarken istediğinizi
seçebilirsiniz. Hangisi daha koalyınıza geliyorsa onu tercih edebilirsiniz.
*/
}
https://gist.github.com/metulangu/d2d40d9d9036fdc268270954fba4594c
0 comments:
Soru, Görüş, Öneri ve Eklemek İstediklerinizi Yazabilirsiniz...