C Dersleri 7: Koşullu İfadeler
C’de belirli bir koşul altında çalışan bir program yazabiliriz. If, else ve else if ifadeleri ile koşulları oluşturabiliriz. Koşullar, döngülerde oluşturduğumuz koşullara benzer fakat burada bir döngü söz konusu değildir. Koşullarda ise daha önce gördüğümüz işleçler kullanılır.
Aşağıdaki programda basit bir if kullanımı vardır.
- #include <stdio.h>
- main()
- {
- int sayi;
- printf("Lutfen bir sayi giriniz: ");
- scanf("%d", &sayi);
- if (sayi<50)
- {
- printf("Girdiginiz sayi 50'den kucuktur.\n");
- }
- if (sayi==50)
- {
- printf("Girdiginiz sayi 50'ye esittir.\n");
- }
- if (sayi>50)
- {
- printf("Girdiginiz sayi 50'den buyuktur.\n");
- }
- }
Gördüğünüz gibi koşul şu şekilde belirtilir:
- if ( [koşul] )
- 1. işlem
Bu programda, ilk olarak bizim girdiğimiz sayı, sayi değişkenine atanır. Daha sonra da bu sayı önce ilk if koşuluyla karşılaştırılır. İlk koşul sayının 50′den küçük olma koşuludur. Eğer sayı 50′den küçükçe sonuç şu şekilde olacaktır.

İlk koşul sağlansa da sağlanmasa da program devam eder. Sayı bu kez ikinci if koşuluyla karşılaştırılır. İkinci koşul sayının 50′ye eşit olma koşuludur. Eğer girdiğimiz sayı 50′ye eşitse sonuç şu şekilde olacaktır.

İkinci koşulun sonucu ne olursa olsun program yine devam eder. Sayı üçüncü if koşuluyla karşılaştırılır. Üçüncü koşul sayının 50′den büyük olma koşuludur. Eğer girdiğimiz sayı 50′den büyükse ekrana sonuç şu şekilde olacaktır.

Bir if koşulu sağlanırsa program bir alt satırdaki işlemleri gerçekleştirir. Burada her koşuldan sonra tek bir satır olduğu için küme parantezleri kullanılmasa da olur. Fakat bir koşul altında birden fazla işlem yapacaksanız hepsini küme parantezi içinde yazmak zorundasınız. C’de bir programı başlatıp bitirmek için de küme parantezi kullanıyoruz. Bu yüzden parantezleri birbirine karıştırmamak gerekir.
- if ( [koşul] )
- {
- 1. işlem ;
- 2. işlem ;
- 3. işlem ;
- ...
- }
Eğer hiçbir koşulun sağlanmadığı bir durum varsa onu da else ile tanımlamak gerekir. Şöyle ki:
- #include <stdio.h>
- main()
- {
- int sayi;
- printf("Lutfen 20 ile 30 arasinda bir sayi giriniz: ");
- scanf("%d", &sayi);
- if (20<sayi && sayi<30)
- {
- printf("\nGirdiginiz sayi 20 ile 30 arasindadir.\n");
- }
- else
- printf("\nGirdiginiz sayi 20 ile 30 arasinda degildir!!!\n");
- }
Bu programda 20 ile 30 arasında bir sayı girmemiz isteniyor. Sayıyı girdiğimiz zaman ilk if koşulunun sağlanıp sağlanmadığı kontrol edilir. Sağlanıyorsa ekrana “Girdiginiz sayi 20 ile 30 arasindadir.” yazdırılır. If koşulu sağlandığı için else kısmı atlanır, o kısma ait hiçbir işlem yapılmaz! Ancak if koşulunu sağlamayan bir sayı girdiğinizde else kısmındaki işlemler yapılır. Burada 20 ile 30 arasında bir sayı girmediğinizde “Girdiginiz sayi 20 ile 30 arasinda degildir!!!” cümlesi ekrana yazdırılır. Bunları deneyerek gözlemleyebilirsiniz.
Else durumunda hiçbir koşul belirtmediğimizi farketmişsinizdir. Çünkü else duurumu zaten bundan önce belirtilen koşulların hiçbirinin sağlanmadığı durumdur.
Else if ise birden fazla if koşulunun olduğu durumlarda kullanılır. İlk yaptığımız örnekte üç koşul vardı. Orada koşulların sonuçlarından bağımsız olarak her if koşulunun kontrol edildiğini söylemiştim. Bu da programda bir yavaşlığa neden olur. Else if böyle durumlarda programımıza hız katmak için kullanılır. Eğer bir koşul sağlanıyorsa diğer koşulları kontrol etmeye ne gerek var ki?
- #include <stdio.h>
- main()
- {
- int sayi;
- printf("Lutfen bir sayi giriniz: ");
- scanf("%d", &sayi);
- if (sayi<50)
- {
- printf("Girdiginiz sayi 50'den kucuktur.\n");
- }
- else if (sayi==50)
- {
- printf("Girdiginiz sayi 50'ye esittir.\n");
- }
- else if (sayi>50)
- {
- printf("Girdiginiz sayi 50'den buyuktur.\n");
- }
- }
Bu program başlangıçta ilki gibi çalışır. Fakat burada ilk koşul sağlanırsa ikinci ve üçüncü koşula bakılmaz. İlk koşul sağlanmadığı zaman ikinci koşula bakılır. İkinci koşul sağlanmazsa üçüncü koşul kontrol edilir. Programın çıktısı aynı sayılar girildiğinde ilk programla aynı olacaktır. Tek fark daha hızlı çalışmasıdır. Bunlar temel düzeyde programlar olduğu için hız farkı pek fazla yoktur fakat daha geniş kapsamlı programlarda if ile else if arasındaki farkı rahatlıkla gözlemleyebilirsiniz.
Konuyla ilgili her türlü soru, sorun ve eleştirileriniz için benimle iletişime geçebilirsiniz.
İyi çalışmalar…
Benzer Yazılar
Yorumlar
Yorum Yapın




