Sponsorlarımız
GENEL IF,ELSE KULLANIMI VE ÖRNEKLERİ
tayfunyanik
29/10/2011    7200 okunma

PROGRAM DÖNGÜ VE KOMUTLARI

 

Nedir?Nerde Kullanılır?

 

   Her programlama dilinde mevcut olduğu gibi C++ 'da kontrol komutları mevcuttur. Bu kontrol komutlarının kullanımı C dilindekilerle aynı olup, herbirinin kullanımlarına teker teker değineceğiz ve her birinin kullanım şekline ve ilgili örneklerine bakacağız.

 

   Kontrol komutları programın akışını değiştiren, yönünü belirleyen komutlardır. Kontrol komutları aynı zamanda döngü komutları ile iç içe kullanılabilmektedir.Her bir döngü komutu içersinde döngünün ne zaman biteceğine dahil kontrolun yapıldığı bir bölüm bulunmakadır

 

Komutlar:

 

   Belli başlı kontrol ve döngü komutları aşağıdakilerdir.

 

if

if-else

for

switch - case

while, do-while

 

 

   Bu komutlarla kullanılan bazı özel komutlar da şunlardır

   break

   continue

 

   Birde artık kullanmayın denilen goto var.

İf-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.

 

İf'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.

 

Örnek-1:

 

1 #include "iostream.h"

 

2 int main()

 

3 {

 

4   int sayi;

 

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

 

6   cin >>sayi;

 

7   if ( sayi > 0 )

 

8     cout << "pozitif sayi girdiniz" ;

 

8 else

 

9 cout<<sayi<<"negatif bir sayı girdiniz"<<endl

 

10 system("pause");

 

11 return o;

 

Örnek-1 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 9 satır devreye giriyor ve ekrana negatif yazıldı diyor(hatalı bir programın oluşturulması burdan kaynaklanıyor normalde 0 girildiğinde pozitif demeli burda düzeltme yapılması gerekli buda en basit yoldan 7. satırda => koyularak olur)

 

   Ş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.

 

Örnek-2:

 

  1. #include "iostream.h"
  2. int 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.  system("pause");
  14.  return 0;
  15. }

 

Örnek-2 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.

 

İf-Else Kullanımı:

 

if ( [ifade] )

 

  [komut];

 

else [komut];

 

ya da

 

if ( [ifade] )

 

{

 

  [komut 1];

 

  [komut 2];

 

  [komut n];

 

}

 

else

 

{

 

  [komut 1];

 

  [komut 2];

 

  [komut n];

 

}

 

ÖRNEK-3:

 

  1.  
  2. #include "iostream.h"
  3.  
  4. int main()
  5. {
  6. int sayi;
  7. cout << "Bir sayı girin :";
  8. cin >> sayi;
  9. if ( sayi > 0 )
  10. cout << "pozitif sayi girdiniz" << endl;
  11. else
  12. cout << " 0 yada negatif sayı girdiniz" << endl;
  13. system("pause");
  14. return 0;
  15. }

 

Örnek-3 Açıklama;

   Artık 9. satırdaki kontrol gerçekleşmezse 11. satı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.

 

Örnek-4

  1. #include "iostream.h"
  2. int 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. system("pause");
  15. return 0;
  16. }


 

Örnek-4 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.

 

İç İçe if-else 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.


 

En Yeni İçerikler

Sponsorlarımız