Programlar pek çok defa farklı durumlara göre farklı kararlar verme ve aksiyon alma ihtiyacı duyar. En basit EVET, HAYIR seçeneklerinin ele alınmasından, 10 larca seçeneği bulunan bir menünün ele alınmasına kadar. Karar verme yapılarımız için if, else, else if, switch kullanırız.

If

1 veya 1 den çok statement(ifade) ın doğruluk kontrolünü yapar. 1 den çok ifade kontrol edilecekse, bu ifadeler operator ler ile birleştirilerek yazılır.

int a = 10;
         if (a < 20) {
            Console.WriteLine("a 20 den küçüktür");
         }

a değişkeninin değerini integer olarak 10 verdik. if deyimi içinde a değişkeninin 20 den küçük olup olmadığını kontrol ettik. 20 den küçük olduğu için, if deyimi true değer döner ve program kod bloğunun içine girer ve bloğun içindeki kod çalıştırılır.

if…else

if deyimi opsiyonel olarak else deyimi ile devam ettirilebilir. Eğer ki if deyimi içindeki ifade true değil ve çalışmaz ise, otomatik olarak else deyimi içindeki kod bloğu çalıştırılır.

int yas = 17;
         if (yas >= 18) {
            Console.WriteLine("18 yaşına eşit yada büyük olduğu için ...");
         }else{
             Console.WriteLine("18 yaşından küçüktür ve izinler sağlanamamıştır");
         }

nested if

İç içe yazılmış if deyimleridir. Sonucunda yapılacak işlemler açısından, aynı ifade de kontrol edilemeyecek durumlarda kullanılması olasıdır.

 float universite_bitirme_notu = 2.30;
int ogrenci_durumu;
         if (universite_bitirme_notu > 2) {
             /* bitirme notu 2.00 dan büyük ise mezun saymak için durumunu 1 olarak set ettik */
            ogrenci_durumu = 1;
            if (universite_bitirme_notu > 3) {
               /* bitirme notu  3 ten büyük ise, yüksek lisans da yapabilir dedik ve ogrenci durumunu 2 olarak set ettik*/
               ogrenci_durumu = 2;
            }
         }

Bu örnekte, binlerce öğrenciyi tek tek inceledik, 2 notunu geçenleri mezun ederken, 3 notunu geçenleride ekstradan yüksek lisans yapabilir olarak kaydettik.

if…else if

if ve else deyimlerini bir arada kullandığımızda sadece 2 koşulu ele alabiliyorduk. if deyimi içindeki ifade doğrusuysa bir kodu çalıştır, aksi halde de diğer kodu çalıştır. Lakin koşullarımızı çeşitlendirebiliriz.

int yas = 15;

if (yas < 3)
{
    Console.WriteLine('bebek');
}
else if (yas < 10)
{
    Console.WriteLine('çocuk');
}
else if (yas < 18)
{
    Console.WriteLine('ergen');
}
else
{
    Console.WriteLine('yetişkin');
}

Switch

string form_uzerinden_gelecek_isim;

switch(form_uzerinden_gelecek_isim) {
   case "emre"  :
      //yapılacak işlemler
      break;
   case "tuğçe"  :
      //yapılacak işlemler
      break;
   default : /* Hiçbir case karşılamıyorsa buraya gelir */
   //yapılacak işlemler
}

Switch deyimi bir değişkenin değerini, bir değer listesi boyunca kontrol eder. Listedeki her bir değere case denir. Eğer ki hiçbir case ile uyuşma sağlanamıyorsa, default kısmı çalışır.

İlk bakışta, yukarıda bahsettiğimiz if-else if-else yapısı ile aynı gibi gözükse de, arka taraftaki işleyişi farklıdır ve bu sebeple de daha iyi performans gösterir. Bu konudaki yazımı https://gelistir.net/78/switch-ve-if-else-if-kiyaslamasi/ adresinden inceleyebilirsiniz.

Last modified: 9 June 2019

Author

Comments

Write a Reply or Comment

Your email address will not be published.