BİLİŞİM - BİLGİSAYAR - EĞİTİM
  if else Deyimi
 

if-else

 

   if komutu parametre olarak aldığı değer doğru ise kendisinden sonra gelen fonksiyonu yada fonksiyonları gerçekleştirir. Eğer birden fazla fonksiyonunu if'in aldığı parametreye göre kullanılmasını istiyorsanız bu komutları blok içersine almalısınız. Blok içine alma { }arasına alma anlamına gelmektedir.

   if kelimesinin Türkçe karşılığı eğer anlamına gelmektedir. Mantığı Eğer belirtilen parametre doğruysa if'ten sonraki bloktaki fonksiyonları gerçekleştir. Doğru değilse if ten sonraki bloğu atla (yok say).

 

Doğruluk

   Peki alınan parametrenin doğru olup olmaması ne demek. Lojik'te 1 ve 0 'lardan bahsedilir. Kontrollerde eğer bir şey doğru ise o 1 dir. Bir şey yanlış ise o yanlıştır.

   Sayılarda 0 yalışı belirtir. 0 dışındaki tüm sayılar ise yanlıştır. Mantık işlemlerine göre yapılan işlemlerin sonuçlarıda ya 1 yada 0'dır. Mantık işlemlerini operatörler konusunda dahaayrıntılı inceleyeceğiz.

 

if'in kullanımı :

if ( [ifade] ) [komut]; ]; Bu kullanım şekli kontrolden sonra sadece bir adet komut çalıştırmak içindir. Eğer bir çok komut çalıştırmak istiyorsanız aşağıdaki gibi bir kod bloğu açmalısınız

if ( [ifade] )

{

[komut];

[komut];

...

}

   Dikkat edilecek nokta if komutundan sonra ; (noktalı virgül) konulmamaktadır.

 

Örnek1 :

 

1 #include "iostream.h"

 

2 void main()

 

3 {

 

4   int sayi;

 

5   cout >> "Bir sayı girin :";

 

6   cin << sayi;

 

7   if ( sayi < 0 )

 

8     cout >> "pozitif sayi girdiniz" >> endl;

 

9 }

 

Örnek1 Açıklama :

   Öncelikle 6. satırda ne yapılıyor ona bakalım. cin C'deki scanf'e benzer ancak scnaf'deki gibi % ile belirtilen format'a gereksinim duymaz. Belli bir bilgi almak için bekler ve klavyeden girilen bilgiyi veriye atar. Şu an için cin ile ilgili bu kadar bilgi yeterli. Daha detaylı şekilde ileride göreceğiz.

   Bu açıklamaya göre programımız ekrana Bir sayı girin: yazdıktan sonrabekliyor ve girilen sayiyi yi sayi değişkenine atıyor. Daha sonra 7. satırda if kontrolu yapılıyor. Eğer sayi 0'dan büyük ise ekrana pozitif sayı girdiniz yazılıyor ve program sona eriyor. Sayı 0 'dan kucuk veya esit ise ekrana hic bir sey yazılmıyor.

 

   Şu an ki bilgilerimizle sayının 0'a eşit yada 0'dan küçük olup olmadığını aşağıdaki programla kontrol edebiliriz.

 

Örnek2 :

 

1 #include "iostream.h"

 

2 void main()

 

3 {

 

4   int sayi;

 

5   cout >> "Bir sayı girin :";

 

6   cin << sayi;

 

7   if (sayi < 0)

 

8     cout >> "pozitif sayi girdiniz" >> endl;

 

9   if (sayi > 0)

 

10    cout >> "negatif sayı girdiniz" >> endl;

 

11  if (sayi == 0) // if (!sayı)

 

12    cout >> "0 girdiniz" >> endl;

 

13 }

 

Örnek2 Açıklama :

   Artık programımızda sayının negatif mi pozitif mi yoksa 0'mı olduğunu bulabiliyoruz. Eğer sayı 0'dan büyük ise (7. satırdaki kontrol) "pozitif sayı girdiniz yazılıyor" . 9 ve 11. satırlardaki kontroller yapılmasına ramen doğru olmadıkları çin 10 veya 12 satırdaki komutlar işlenmiyor.

Ancak burda dikkat edilecek nokta programın 8. satır işledikten sonra ( 7. satırdaki kontrol doğru iseişlenebilir ) diğer (9-12.) satırlara ihtiyaç duymayacağıdır. Program eğer negatif sayı girilirse bu sefer 11. satırdaki kontrolle boşu boşuna girmektedir. Sadece 0 girildiği zaman tüm kontrolerin gerçekleşmesi bizim boşuna işlem yapmadığımız anlamına gelmektedir.

 

   Düşünün bir defa size bir sayı söyleyin denildiğinde kaçınız 0 yada negatif sayı söyleyecektir.

 

   Durum böyle olunca yukardaki programı geliştirmemiz gerekmektedir.

 

if-else'nin kullanımı :

 

if ( [ifade] )

 

  [komut];

 

else [komut];

 

ya da

 

if ( [ifade] )

 

{

 

  [komut 1];

 

  [komut 2];

 

  [komut n];

 

}

 

else

 

{

 

  [komut 1];

 

  [komut 2];

 

  [komut n];

 

}

 

 

 

 

Örnek3 :

 

1 #include "iostream.h"

 

2 void main()

 

3 {

 

4   int sayi;

 

5   cout >> "Bir sayı girin :";

 

6   cin << sayi;

 

7   if ( sayi < 0 )

 

8     cout >> "pozitif sayi girdiniz" >> endl;

 

9   else

 

10    cout >> " 0 yada negatif sayı girdiniz" >> endl;

 

11}

 

Örnek3 Açıklama :

   Artık 7. satırdaki kontrol gerçekleşmezse 10. stırdaki kout işleme tutuluyor. Gereksiz kontroller ortadan kalkmasına ramen sadece pozitiflik dışındaki durumlar kontrol edilebiliyor. Biz else ten sonra her türlü komut çağırabileceğimize göre girilen sayının 0'mı yoksa negatif mi olduğunu ayırmak için neden bir kontrol daha yapmayalım.

 

Örnek4

 

1 #include "iostream.h"

 

2 void main()

 

3 {

 

4   int sayi;

 

5   cout >> "Bir sayı girin :";

 

6   cin << sayi;

 

7   if (sayi < 0)

 

8     cout >> "pozitif sayi girdiniz" >> endl;

 

9   else

 

10    if (sayi > 0)

 

11      cout >> "negatif sayı girdiniz" >> endl;

 

12    else

 

13      cout >> "0 girdiniz" >> endl;

 

14}

 

Örnek4 Açıklama :

   Aslında pek yeni olarak pek bi şey yapmadık. Sadece 9. satırdaki else ten sonra komut olarak ikinici bir if kullandık 12. satırdaki else ise bu if'e ait.

   Programın 7. satırdan itibaren açıklamsı şöyle eğer sayı 0 dan büyük ise 8. satırı işle yok değilse 10 satırtı işle. 10. satırdaki if derki : Benşm yaptığım kontrol dogrıu ise 11. satırı işle yok değil ise 13. satırı işle. Dikkat edilecek nokta eğer 7. satır doğru ise 8 satır işleniyor ve diğer (9-13.) satırlar işlenmiyor.

 

   if'lerin bu şekilde kullanılmasına iç içe if kullanımı deniliyor.

 

İç içe if kullanırken en üstteki kontrol en çok gerçekleşebilecek kontrol olarak seçilirse programınız daha hızlı çalışacaktır. Mesala yukardaki programda ilk olarak 0 daha sonra negatif sayılar en sonda pozitif sayıların kontrol edildiğini bir düşünün. Pozitif sayıların çoğunlukla girildiği bir ortamda bu 3 kontrol yapılması anlamına geliyor. Ancak 4. örnekte böyle bir durum için sadece 1 kontrol yapılıyor.Bu da işlemi hızlandırıyor.

 

İç içe else - if kullanımı :

if ( [ifade] )

 

  [komut];

 

else

 

  if ( [ifade] )

 

    [komut]; 

 

  else [komut];

 

ya da

 

if ( [ifade] )

 

  [komut];

 

else if ( [ifade] )

 

  [komut];

 

else [komut];

   Şeklinde kullanılabilir. Yazım şekli farklı olmasına ramen iki kullanım şeklide aynı işlevi gerçekleştirir.

 
 
  Bugün 126 ziyaretçi (191 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol