Friday, October 14, 2022

Dart Ders Notlarım 22: Tek Satır if-else

 

Dart Ders Notlarım 22: Tek Satır if-else


void main() {

/*

Arkadaşlar. if-else yapısına göre ayarlanmış bir kısa yazım şekli var.

 Buna üçlü operatör diyorlar. Bir satır ve 3 kısımdan oluşuyor. 

1. kısım şart. 2.kısım şart doğru olunca çalışacak kod. 3. kısım şart yanlış

olunca çalışacak kısım. Bu yazım şeklinde if sonra blok aç kodları yaz sonra 

else yap sonra blok aç else kodlarını yaz gibi durumlar yok.

Bunun gösterimi tek satırda oluyor.Bir satırda işi bitiriyoruz. Yazı olarak yazalım.

Şartımız ? şartDoğruOluncaBurası : şartYanlışOluncaBurası

Gördüğünüz gibi önce bir şart yazıyoruz. Sonra soru işareti ? bırakıyoruz yanına.

Sonra şart doğru olunca yapılacak işlemi giriyoruz. Sonra iki nokta üstüste : 

koyuyoruz. Ve bundan da sonra şart yanlış çıkınca çalışacak kodu yazıyoruz. En 

sonuna noktalı virgül deyip ; işlemi tamamlıyoruz. Şimdi aşağıdaki 

örneklere bakalım.

*/


/*

Aşağıdaki örnekte önce uzun halini sonra kısa halini yazdık. Aynı anda görelim

daha iyi anlaşılır. Uzun halini zaten biliyoruz. Kısa halini açıklayayım. Direkt

şartımızı girdik. 15>10. Yani sorumuz 15 10'dan büyük mü şeklinde. Sonra ?

soru işaretini koyup şart doğru ise çalışacak printi yazdık. Sonra iki nokta

üstüste koyup : devamında yanlış ise çalışacak printi yazdık. En sona da noktalı

virgül ; bırakıp satırı tamamladık. Önemli bir not. ilk print için noktalı virgül

koymuyoruz. Sadece satır sonuna koyuyoruz ;.


*/


  if (15 > 10) {

    print("Uzun İf Büyük"); //True

  } else {

    print("Uzun İf Küçük");

  }


  15 > 10 ? print("Kısa İf Büyük") : print("Kısa İf Küçük"); //Kısa İf Büyük


/*

Şimdide aşağıda değişkenli bir kullanıma bakalım. Burada durum adında bir değişken

tanımlayıp bu değişkene 9==10 sorugusundan çıkacak sonucu atıyoruz. Değişken

string olabiliyor. Şimdi ifade ifade gidelim. String dedik ve durum isminde bir

değişken tanımladık. Sonra = eşittir dedik. Bu eşittir kendinden sonraki tüm işlemin

sonucunu durum değişkenine ata demek. Kendinden sonraki işlem ne. 9 10'a eşitmi

sorusu. Evet 9==10 sorgusunu yazdıktan sonra ? soru işaretini koyuyoruz. Ve şimdi

eşitse çalışacak kodu yazıyoruz. Tabiki şuanda eşit değil. Bu kod çalışmayacak.

Sonra iki nokta üstüste koyup devamında eşit olmadığı zaman çalışacak kodu 

yazıyoruz. Ve bu kod çalışacak. Yani Eşit Değil String değerini durum isimli

değişkene atayacak.Burada tırnak içinde eşit veya eşit değil yazdık.

Çünkü sonuç olarak string dönecek ve durum değişkenide string tanımlı. Sonra alt

satırda durum değişkenini print ediyoruz.

Aşağıdaki örnekte şartımızı parantez içine alsak da oluyor almasak da. 

*/


  String durum = 9 == 10 ? "Eşit" : "Eşit Değil";

  print(durum); //Eşit Değil


/*

Şimdide iki değişken olarak karşılaştırma yapalım. Burada önce küçük sayıyı 

buluyoruz ama değişkenler yardımıyla. Sonra ise mutlak değere çevirme işlemi var.

Adım adım bakalım. Önce iki adet int değişken tanımlayıp değerlerini girdik.

Sonra int kucukDeger diye bir değişken girdik sonucu tutalım diye. Zaten hemen

altında sonucu print ile ekrana yazıyoruz. Burada interpolasyonuda kullandım.

Çıktılarımız daha güzel gözüksün.

*/


  int a = -11;

  int b = 22;

  int kucukDeger;

  kucukDeger = (a < b) ? a : b;

  print("Küçü sayı $kucukDeger"); //Küçü sayı -11


/*

Şimdi yukardaki örneği aşağıda tekrar yapalım. Bu sefer yazım işlemini de aynı 

satırda yapalım. Değişkenler yine yukardaki a ve b olsun. Değerlerini de olduğu

gibi bırakıyorum. Ancak bu sefer BÜYÜK sayıyı bulalım. Aşağıdaki örneği hem 

interpolasyonlu hemde interpolasyonsuz yapalım. Önce ilk satırdakine bakalım.

interpolasyonsuz olanına. 


Direkt şartımızı giriyoruz. Parantez kullanabilirsiniz aslında. Ama şuanda

karışıklık veya matematiksel bir sıkıntı olmadığı için bu örnekte parantez 

kullanmıyorum. 


Şartımız a b den büyüktür. Hemen soru işareti atıyoruz yanına ?.

Bundan sonra doğru ise çalışacak kodu yani print a yı ekrana bas diyoruz. a b'den

küçük olduğu için ilk print çalışmaz. 


Sonra iki nokta üst üste koyup : şart yanlış ise çalışacak kodu yazıyoruz. 

Burada da print b deyip b yi ekrana basıyoruz. Çünkü b daha büyük.

a=-11

b=22

*/


  a > b ? print(a) : print(b); //22


/*

Hemen üstteki örneği tekrar yazdım aşağıya. İkiside aynı sonucu veriyor ama 

yazımları biraz farklı oldu. Üstte a>b yi kontol ettiğimiz için ilk printe a yı

bastık. 


Altta ise b>a yı kontrol ettiğimiz için ilk printte b yi bastık.


İkisiyle de büyük sayıyı buluyoruz. Mantık şu şekilde. Yazdığımız koşul bizim

isteğimize göre olmalı. Büyük sayıyı bulacak isek büyüktür işareti kullanmamız

gerekiyor. Önce hangi değişkeni yazdığımızın bir önemi yok. Büyüktür işaretini

kullandığımız için ilk print büyük olarak yazdığımız değişkeni girmeliyiz. 

a>b yazarsak ilk print a yada b>a yazarsak ilk print b olmalı.

*/


  b > a ? print(b) : print(a); //22


/*

Bir alttaki satırın tek farkı açıklamalı print yaptık. Ekrana bir çıktı geliyor

ama ne bu. Ne olduğu sadece bir örnek olsa anlaşılır tamam da burda şu anda

dünyanın kodu oldu. Daha anlaşılır işler ortaya çıksın diye açıklamalı print

gördüğünüz gibi oluyor. Bunu daha önceki konularda detaylı olarak ele aldık.

Bakabilirsiniz. Şimdi üşenmeden bu satırımızı da açıklayalım. Bu ifade şekline

ternary yani üçlü operatör diyiliyor demiştik. Bu sefer de öyle açıklayalım.

birin kısım şart kısmı. Soru işaretine kadar olan kısımdır.

İkinci kısım true kısmıdır. Soru işareti ile iki nokta üstüste araıdır.

Üçünçü kısım false kısmıdır. İki nokta üstüste ile noktalı virgül arasıdır.

Birinci kısım   (a > b) ?

İkinci kısım    ? print("Büyük Sayı $a") :

Üçünçü kısım    : print("Büyük Sayı $b");

a=-11

b=22'dir.

Çok kısa şartı giriyoruz. a>b dedik. Soru işareti ve doğru olunca çalıaşcak print

iki nokta üstüste  sonra yanlış olunca çalışacak kısım. Sorgu doğru olduğu için

ilk print çalışacaktır.

*/


  (a > b) ? print("Büyük Sayı $a") : print("Büyük Sayı $b"); //Büyük Sayı 22


/*

Aşağıda bir örneğe daha bakalım. Bu örnekte girilen sayı sıfırın altında bir sayı ise 

onun mutlak değerini alalım. Yok zaten sıfırdan büyükse kendisini alalım.

a değişkeni -11 olarak girilmiş zaten ve bizde yine onu kullanalım.

int mutlakDeger'i direkt aynı satırda sorgumuzun sonucuna eşitliyoruz. Sorgumuz

a<0. Sonra ? deyip -a yapıyoruz. Yani sorgu doğruysa girilen sayı eksi bir sayıdır.

Bizde mutlak değer alacağımız için a'yı eksi ile çarpıyoruz orada. Sonra : koyuyuruz.

Burda da a'yı sonuç olarak dönüyoruz. Bu ihtimal zaten a sıfırdan büyük olduğu zaman

çalışacağı için o zaman a pozitif demektir ve direkt kendisini kullanabiliriz.

Bu satırda mutlakDeger içine 11 değerini atmış olduk. Kısaca a-11 olduğu için

ilk önerme çalışacak. Orda da ayı - ile çarpıyruz. Ve a artı 11 oluyor. Artıyı

yazmaya gerek yok zaten. Ki sistem de çıktıda yazmıyor onu.

a=-11

*/

  int mutlakDeger = (a < 0) ? -a : a;

  print("Girilen sayının Mutlak Değeri $mutlakDeger"); //11


/*

Aşağıda daha önce if else için çözdüğümüz soruları bu yöntemle tek satır if ile

çözelim. İlk kodumuz sayının tek mi yoksa çift mi olduğu bize söylüyor.

sayi adında int tipinde yani tam sayı tipinde bir değişken tanıplayım aynı

satırda değer olarak 15 değerini atadık içine. Sonra alt satırda ternary yöntemi

ile koşulumuzu yazdık. sayi mod 2 eşit sıfır ise ilk kod çalışacak değilse ikinci

kod çalışacak. Ki sayımız tek olduğu için ikinci kodumuz çalışacak.

*/


  int sayi = 15;

  (sayi % 2 == 0) ? print("$sayi çift sayıdır") : print("$sayi tek sayıdır");

  //15 tek sayıdır


/*

Aşağıda direkt not değerini aldık işlem falan yapmadan. Amacımız 44 den büyükse 

Tebrikler küçükse Daha Çok Çalış yazdırmak ekrana. Notumuz 46 verilmiş. Doğru 

olduğu için ilk kodumuz çalışacak. Ekrana Tebrikler yazacak.

Bunu kısımlarına ayıralım. Ternary olarak bakalım. Yani üçlü olarak.

Birinci kısım şartımız.   (not > 44) ?

İkinci kısım true         ? print("Tebrikler") :

Üçüncü kısım false        : print("Daha Çok Çalış");

Ture demek şartımız doğru olunca çalışacak kod, doğal olarak false de şartımız

yanlış çıkınca çalışacak kod.

*/


  int not = 46;

  (not > 44) ? print("Tebrikler") : print("Daha Çok Çalış"); //Tebrikler

}



Share This

0 comments:

Soru, Görüş, Öneri ve Eklemek İstediklerinizi Yazabilirsiniz...