10 Ekim 2016 Pazartesi

if-else Kullanım Hataları

Hata-1
if sayi==10         //Söz dizimi hatası   
   printf ("Girilen sayi 10\n");

Koşul ifadesinde ( ) sembolleri kullanılmadığı için “syntax error” hatası alınır (Söz dizimi hatası).

Hata-2
if (sayi==10);            //Boş ifade
   printf ("Girilen sayi 10\n");

Koşul ifadesinden sonra ; sembolü kullanılmıştır. C derleyicisi için boş bir ifadedir. Sonraki satır bu satırdan bağımsızdır.

Hata-3
if (10<=sayi<=50)          //Mantıksal Hata   
Sonucu her zaman doğru olan mantıksal bir hatadır.

Koşul ifadesi soldan sağa doğru değerlendirilir. sayi değişkenin değeri 10 ile karşılaştırılır.
10’dan küçükse false yani 0 sonucu döner,
10’dan büyükse true yani 1 sonucu döner,
Her iki durum da (0 veya 1 sonucu) dönen değer 50’den küçük olacağı için bu ifade her zaman doğru sonuç verir.
Bunun yerine  ((sayi>=10) && (sayi<=50)) koşul ifadesi kullanılmalıdır.


Hata 4
if (sayi=10)             //Mantıksal Hata
Sonucu her zaman doğru olan mantıksal bir hatadır.
Koşul ifadesinde karşılaştırma operatörü == yerine, atama operatörü = kullanılmıştır.
 Atama sonucunda 10 değeri oluşur.
10 değeri 0’dan büyük olduğu için sonuç “true” dönecektir ve bu da yanlış bir sonuç üretecektir.

Atama operatörü yerine, == karşılaştırma operatörü kullanılmalıdır.