C programlama #Bölüm 14# Koşullu İfadeler

Bu bölüme kadar c programlama dilinin temellerini çok güzel öğrendik, şimdi ise daha çok sıklıkla kullanılan ifadelere geçmenin vakti gelmiş. C programlama dilinde kodlar yukardan aşağıya doğru akış şeklinde takip ediliyordu. Bizimde bu akışa yön vermemizin zamanı geldi. Kodun ilerleyişinde ona bir soru soracağız. Ya evet ya hayır, başka şansı yok. Şimdi birer örnek ile koda yön vermeye başlayalım.



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include<stdio.h>

int main(){
    int age = 0;

    printf("Yasini gir:");
    scanf("%d", &age);

    if(age > 18){
        printf("Girebilirsiniz");
    }
    else {
        printf("Giremezsiniz")
    }

    return 0;
}

Örnek kod üzerinde inceleyecek olursak. Yaş verisini tutabilmesi için bir değişken tanımlıyoruz. Kullanıcıya yaşını girmesini söylüyoruz ve girilen yaş değerini değişkenimize atıyoruz. Buraya kadar önceki bölümlerde öğrendiğimiz bilgileri kullandık.

Kullanıcını 18 yaşından küçüklerin giremediği bir yere girmeye çalıştığını düşünelim. Bir koşul var. O da 18 yaşından büyük olmak. Bunu kod üzerinde if yani eğer ifadesi ile belirtiyoruz. Parantez içerisinde koşul ifademizi belirtiyoruz. Bu şu anlama geliyor, eğer parantez içerisindeki koşu sağlanıyorsa devamında gelen süslü parantezli bloğa gir, eğer sağlamıyorsa bloktan sonraki bloktan sonrasına devam et. Devamında else yani değilse ifadesi koşul sağlanmadığında girilecek bloğu göstermektedir. İf ifadelerinin sonuna da noktalı virgül koymuyoruz!


Koşullar programlamanın çok önemli bir adımı olduğu için bir örnekle daha bakabiliriz.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include<stdio.h>

int main(){
    int num = 0;

    printf("Sayi gir:");
    scanf("%d", &num);

    if(num > 0){
        printf("Pozitif");
    }
    else if (num < 0){
        printf("Negatif");
    }
    else {
        printf("Notr");
    }

    return 0;
}

Örnek kod üzerinde bir önceki örneğimizde olduğu gibi kullanıcıdan bir sayı alarak bu sayıyı değişkenimiz içerisine atıyoruz. Sayımız eğer sıfırdan büyük ise terminal ekranına pozitif yazdırıyoruz. Burada farklı olarak else if yani değilse şuna bak ifadese bakılacak yeni bir koşul oluşturur. Eğer sayı sıfırdan büyük değiş sıfırdan küçük ise terminal ekranına negarif yazıyoruz. En sondaki bulunan else ifadesi ise koşullardan hiç biri çalışması durumunda çalışır. Sayı hem sıfırdan büyük değil hem de sıfırdan küçük değil ise terminal ekranına nötr yazılır.


Peki ya aynı anda iki koşulun sağlanması gereken durumlarda ne yapmalıyız?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>

int main(){
    int boy = 0;
    int kilo = 0;

    printf("Boyunu gir:");
    scanf("%d", &boy);
    printf("Kilonu gir:");
    scanf("%d", &kilo);

    if(boy > 180){
        if (kilo < 75){
            printf("Takimdasin");
        }
    }
    else {
        printf("Daha cok calismalisin");
    }

    return 0;
}

Örnek kod üzerinde iç içe girmiş kişi koşul ifadesi görüyoruz. Bir basketbol takıma seçilmek için sporcunun boyunun 180 den fazla ve kilosunun 75 den az olup olmadığına bakıldığını düşünelim. Bu durumda iki koşul var ve ikisinin de aynı anda sağlanması gerekiyor. Önce boy koşulunun sağlanıp sağlanmadığına bakılıyor. Eğer koşul sağlıyorsa içerisine girdiği blok da bir tane daha koşul ifadesi ile karşılaşıyor. Bu koşulu da sağlarsa terminal ekranında takımdasın yazıyoruz. Eğer koşulları sağlamıyorsa terminal ekranında daha çok çalışmalısın yazdırıyoruz.


Son örneğimizi nasıl daha güzel hale getirebiliriz? Bir düşünelim.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#include<stdio.h>

int main(){
    int boy = 0;
    int kilo = 0;

    printf("Boyunu gir:");
    scanf("%d", &boy);
    printf("Kilonu gir:");
    scanf("%d", &kilo);

    if((boy > 180) && (kilo < 75))
    printf("Takimdasin");
    else
    printf("Daha cok calismalisin");

    return 0;
}

Önceki bölümlerimizden hatırlayacağınız üzere mantıksal ve ifadesi && iki koşulunda sağlandığı durumlarda mantık bir oluyordu. Yani bu örnek için iki if ifadedsini bir araya getirmemizi sağlamış oldu.

Bir başka sadeleştirme durumunuz ise if ifadesinin altında sadece bir satır var ise blok açmamıza gerek yok. Buradaki mantık if ifadesinden sonra blok yok ise noktalı virgül gelene kadar olan bir alt satır o ifadenin bloğu anlamına gelmektedir.