if-else İfadeleri

Her programlama dilinde olan standart işlevlerden biri de kontrol bloklarıdır. Kontrol bloklarının kullanımı oldukça kolaydır ve genel bir çalışma yapısı vardır. Bir şart ifadesinin doğruluğu yada yanlışlığına göre bir dizi ifadeler çalıştırılır.

if else Ifadeleri Örnek Uygulama Görüntüsü

Dilerseniz if else ifadeleri ile ilgili örnek uygulamayı indirebilirsiniz.

Uygulama girilen bir karakterin büyük yada küçük harf, sayı yada alfanumerik olduğunu göstermektedir.

Basit bir if else bloğu şu şekildedir;

int x = new Random().Next();
if(x % 2 == 0)
	MessageBox.Show("x çifttir");
else
	MessageBox.Show("x tektir");

Yukarıdaki kod örneğinde koşul : x'in 2 ye bölümünden kalan sıfırdır. Bu işlemin sonucuna göre ekrana bilgi mesajı veriyoruz sadece. İşletilen ifade tek bir satır olabileceği gibi birkaç satırdan da oluşabilirdi. Bu durumda bu ifade bloğunu süslü parantezler içine almamız gerekirdi. Şöyle;

if(x % 2 == 0)
{
	string mesaj = "x çifttir";
	MessageBox.Show(mesaj);
}

Eşitlik Operatörü != Atama Operatörü

Değişkenlere değer verirken kullandığımız operatör = olan atama operatörüdür. İki değeri kıyaslarken kullanılan operatör ise == eşitlik operatörüdür. İf ifadelerinde yapılan hatalardan biri koşul deyimlerini yazdığımız yerde atama operatörünün kullanılmasıdır. Koşul ifadelerinin geri dönüş değeri true yada false olmalıdır. Bu sebeple buradaki işlem atama ise bununda sonucu true yada false olmalı ki hata olmasın. Diğer şekilde kıyaslama yapılıyorsa zaten true yada false dönecektir ki sorun teşkil etmez. Aşağıdaki örneği dikkatle inceleyelim.

if (x = 5)
{ 
	//işlemler...
}

Yukarıdaki ifade şu şekilde bir derleme hatası verir.

Error : Cannot implicitly convert type 'int' to 'bool'

x = 5 işleminin geri dönüş değeri 5 tir. Çünkü burada bir atama sözkonusudur. integer tipindeki 5 değerini bool tipine(true yada false) dönüştüremediğinden hata mesajı vermektedir. Doğru işlem x==5 şeklinde olmalıydı.

Gereksiz if-else Kontrollerinden Sakınmak

if, else ve else if ifadelerinin kullanım yerlerini şu şekilde özetleyebiliriz.

  • if : her halukarda çalıştırılır.
  • else : bir önceki if yada else if ifadesi false ise herhangi bir kontrol yapılmadan else içindeki kod bloğu çalıştırılır.
  • else if : bir önceki if yada else if ifadesi false ise tekrar else if kontrolü yapılır ona göre else if içindeki kod bloğu çalıştılır. Bir önceki if yada else if true ise kontrol edilmeksizin çalıştırılmaz.

Yazının başında vermiş olduğumuz örnekteği aşağıdaki şekillerde de gerçekleştirebilirdik.

Aşağıdaki ilk örnekte iki yarı if kullanarak yaptığımız işlemde ikinci if kontrolü gereksiz yere kullanılmıştır çünkü çift olmayan sayılar zaten tektir. Her iki if kontrolü de yapılacaktır. Halbuki biri yapıldığı takdirde diğerine gerek yoktu.

İkinci örnekte ise benzer bir hata yapılmıştır. Yalnız burada birinci if kontrolü true ise ikinci kontrolü hiç yapmayacaktır. Birinci if kontrolü false ise ikincisi gerek olmadığı halde kontrol edilecektir.

Aslında sadece bir if kontrolüne bakmakla uygulama o kadar yavaşlamaz, fakat bu tür hataların sık yapılması sonucunda bir performans sorunu ortaya çıkabilir.

int x = 2;
if(x % 2 == 0)
	MessageBox.Show("x çifttir");
if (x % 2 != 0)
	MessageBox.Show("x tektir");
int x = 2;
if(x % 2 == 0)
	MessageBox.Show("x çifttir");
else if (x % 2 != 0)
	MessageBox.Show("x tektir");

Yorum yapabilirsiniz

Adınız  


E-Posta  


Yorumunuz