Bu Blogda Ara

26 Haziran 2014 Perşembe

C dili if else yapısı

  Şu ana kadar veriyi programcının nasıl girdiğini ve kullanıcıdan nasıl aldığını gördük. Artık bunları karşılaştırıp yorumlayabiliriz.

                                       if ( koşul  )
                                         {  // koşul doğruysa 
                                             buradaki işlemleri yap

                                         }
                                       


  If ingilizcede eğer demek. Eğer if içerisindeki koşul doğruysa parantezler arasında kalan kısmı işleme koyar. Şimdi küçük bir program yapma zamanı.


    Programın yaptığı şey yaşın 18'den büyük olup olmadığını anlamak. Eğer yaş 18'den büyükse printf işlemiyle bize haber veriyor.

   
   Eee peki 18'den küçükse? Program o satıra geldiğinde yapacak birşey bulamayıp hata verir mi?

  Vermez. Çünkü ancak koşul doğruysa parantez içine gider. Eğer koşul yanlışsa son parantezden kodu işlemeye devam eder ve printf'i görür, ekrana yazar. If bize veriyi kontrol etme imkanı sağlıyor ancak eksik birşeyler var. Yukarıdaki örnekte 18 yaşından küçükse başka işlemler yapmak istiyoruz diyelim nasıl olacak?
   
                                                                  ELSE

   Else, if ile beraber kullanılan bir yapıdır. Tek başına bir anlamı yoktur. If içerisindeki koşul yanlış olduğunda yapılması gereken işlemleri içerir.

                                          if ( koşul  )
                                         {  // koşul doğruysa 
                                             buradaki işlemleri yap

                                         } else{    // koşul yanlışsa
                                                       buradaki işlemleri yap
                                                   }
      Örnek üzerinde görelim:


   Bu kez 18 yaşından küçük olma durumu için de yaptırabileceğimiz işlemler var. 2000 yılını girdiğimizde ekran çıktısı şu şekilde olur:

   Başka bir işlem herhangi bir şarta bağlı olmadığından her koşulda işleme konacaktır ancak if ve else içindekiler bir koşula bağlı olarak çalışır.

                                                 
                                                     MANTIK OPERATÖRLERİ

    Küçük-büyük işlemlerinin nasıl kullanıldığını gördük ve geldik diğer operatörlere.
              
  Eşitlik durumu == ile gösterilir. Tek "=" işareti atama anlamında kullanılır (x=5  5, x'e atanmıştır). 'Eşitse' demek içinse çift '='  kullanılır.

  <=    :  Küçük eşit
  >=    :  Büyük eşit
  !=     :  Eşit değil

                                                     VE, VEYA GÖSTERİMİ

 
     'Ve' için && işareti kullanılır. Böyle durumlarda hem soldaki ifade hem sağdaki ifade doğruysa if doğru olur. Eğer biri yanlışsa varsa else'den devam edilir.

 
   'Veya' içinse || kullanılır ( ALT GR+ z ile shift arasındaki tuş). Bu durumda x>5 veya x<10 durumlarından herhangi biri doğru ise if doğru olur, if parantezinden devam edilir. Ancak ikisi de yanlışsa varsa else'den devam edilir.
                           
                                                  
                                                     strcmp() FONKSİYONU

  Farkındaysanız hep sayıları karşılaştırdık şu ana kadar. Char türündeki veriyi karşılaştırmak içinse strcmp() fonksiyonu kullanılır.

  strcmp( ilk_deger,ikinci_deger  ) şeklinde kullanılır. Bu fonksiyon içindeki ifadeye göre 3 değer döndürür.

 Dönen Değer  Açıklama
< 0  ilk_deger, ikinci_deger'den küçüktür. 
== 0  ilk_deger ve ikinci_deger birbirine eşittir. 
> 0  ilk_deger, ikinci_deger'den büyüktür. 

  Yukarıdaki if'in anlamı şudur: eğer isim ozan'sa ekrana 'selam ozan' yaz.


  Biz ozan değerini girdiğimizde strcmp() ne girdiğimizi karşılaştırır.

                         1. Adım:  strcmp(isim,"ozan");
                         2.Adım:   strcmp("ozan","ozan");
                         3.Adım:   0
  İki değer de birbirine eşit olduğundan sonuç olarak '0' cevabını verdi fonksiyon.
                    
                         4. Adım: if( 0 ==0  );

  strcmp() kısmı 0'a eşit olduğundan if'in içi böyleymiş gibi çalışır. 0, 0'a eşit olduğundan da if parantezinden devam eder.





Hiç yorum yok:

Yorum Gönder