7 : Dört İşlem

    Koşullu yapılar kurmak için if else yapısı haricinde bir yapı da kullanabiliriz. Bu yapıda gelen değerlerin ne olduğunu ön görmemiz gerekiyor. Ön göremediklerimiz ile ya ilgilenmiyoruz ya da hepsi için aynı tepkiyi veriyoruz. Bu yapı switch case yapısı olarak isimlendiriliyor.


 dortislem.c
# include <stdio.h>
int main() {

    char islem;
    double sayi1, sayi2;

    printf("Islemi seciniz (+, -, *, /): ");
    scanf("%c", &islem);

    printf("Ilk sayiyi giriniz: ");
    scanf("%lf", &sayi1);
    printf("Ikinci sayiyi giriniz: ");
    scanf("%lf", &sayi2);
    switch(islem)
    {
        case '+':
            printf("%g + %g = %g\n",sayi1, sayi2, sayi1 + sayi2);
            break;

        case '-':
            printf("%g - %g = %g\n",sayi1, sayi2, sayi1 - sayi2);
            break;

        case '*':
            printf("%g * %g = %g\n",sayi1, sayi2, sayi1 * sayi2);
            break;

        case '/':
            printf("%g / %g = %g\n",sayi1, sayi2, sayi1 / sayi2);
            break;

        default:
            printf("Islem gecersiz \n");
    }
    return 0;
}
 

Burada ilk önce hangi işlemi yapacağımızı seçtik. Çünkü scanf ile tek karakter yakalamak sıkıntılı bir konu. Önce sayıları sonra işlemi seçerseniz düzgün çalışmıyor. Bu tür problemleri sebebiyle scanf çok sevilen bir fonksiyon değildir. Kullanımı basit olduğu için örneklerde ben kullandım ancak çoğu zaman kullanıcıdan bu tür şeyleri konsoldan girmesini beklemeyeceğiniz için çok sıkıntı yaşacağınız bir konu olmayacaktır. Burada önemli olan switch case yapısının nasıl çalıştığını anlamak ve yanlış girildiği durumda hata oluşmaması için önlem almak. Her case yapısından sonra break yaparak işi bitiriyoruz. Break komutlarını kaldırıp farkları inceleyebilirsiniz. Switch case yapısında neden önemli bir komut olduğunu anlamak açısından yararlı olabilir. Bahsettiğim scanf problemi için şöyle bir çözüm önerilmiş.

Yorumlar

Bu blogdaki popüler yayınlar

31 : Fonksiyonda Struct Kullanımı

Structure - 29 : Yapılar ile Öğrenci Bilgileri Tutma

23 : İki Karakter Dizisini Birleştirme