Switch case durumu bir sorgu yaptığımızda istenileni tetiklediği zaman gerçekleştirilecek kod satırlarını sağlamamıza yarar. Aynı durum if else komutunda da vardır. Peki bu ikisi arasındaki fark nedir diyecek olursak, if else komutunda program çalıştığında tüm if ‘leri tek tek tek kontrol eder ve doğru sorguya geldiğinde kodları işler. Switch case ‘de ise sorguları tek tek kontrol etmez istenilen sorguya tek seferde gider ve komutları işler. Yani Switch case, if else’e göre daha hızlı çalışır. Programın hızlanmasını sağlar ve bu programlama için önemli bir adımdır.
Yapmış olduğumuz açıklayıcı ufak projede hem if else ‘i kullandık hem de switch case ‘i kullandık. Aradaki farkı sizler de anlayabileceksiniz.
Programı indirmek için buraya tıklayabilirsiniz.
Program kodlarının tamamı aşağıdadır.
int durum;
Yapmış olduğumuz açıklayıcı ufak projede hem if else ‘i kullandık hem de switch case ‘i kullandık. Aradaki farkı sizler de anlayabileceksiniz.
- Form uygulamamızın üzerine 2 adet buton, 1 adet textbox ve 1 adet label yerleştirdik.
- Textbox üzerine gireceğimiz veriye göre butonlar bize sonuç verecek. Bu durumu hem if else, hem de switch case ile yazdık. İki buton da aslında aynı sonucu verecek fakat switch case daha hızlı çalışır.
- Textbox’a 1 yazdığımızda “Birinci seçeneği seçtiniz” , 2 yazdığımızda ise “İkinci seçeneği seçtiniz” yazısı label üzerinde gözükecek.
- If-else butonuna bastığımızda label yazı rengini kırmızı yapacak.
- switch case butonuna bastığımızda sonucu mavi göreceğiz. Çünkü her iki komut da aynı sonucu vereceği için farkı anlamamız için yazı rengini değiştirdik.
- If else butonuna çift tıklayarak click özelliğine aşağıdaki kodları yazıyoruz.
Kod:
private void btnifelse_Click(object sender, EventArgs e)
{
durum = Convert.ToInt32(txtAcikla.Text);
if (durum == 1)
{
lblSonuc.ForeColor = Color.Red;
lblSonuc.Text = "Birinci seçeneği seçtiniz.";
}
else if (durum == 2)
{
lblSonuc.ForeColor = Color.Red;
lblSonuc.Text = "İkinci seçeneği seçtiniz";
}
}
- durum adında bir değişken tanımladık ve bunu textbox’ın text özelliğinden almasını istedik.
- Sayılarla kontrol sağlamak istediğimiz için durum değişkenini integer tanımladık.
- Switch case butonuna çift tıklayarak click özelliğine aşağıdaki kodları yazıyoruz.
Kod:
private void btnswitchelse_Click(object sender, EventArgs e)
{
durum = Convert.ToInt32(txtAcikla.Text);
switch (durum)
{
case 1:
lblSonuc.ForeColor = Color.Blue;
lblSonuc.Text = "Birinci seçeneği seçtiniz.";
break;
case 2:
lblSonuc.ForeColor = Color.Blue;
lblSonuc.Text = "İkinci seçeneği seçtiniz";
break;
}
}
- Gördüğünüz kod satırını açıklamak gerekirse, swtich durum değişkeninin kontrolünü sağlayacak. bu yüzden switch(durum) dedik.
- Case dediğimi seçenek anlamına geliyor. Eğer durum 1 ise, break komutuna kadar olan kodları gerçekleştirmesini söyledik.
- Break komutu durmamızı sağlar.
- Switch case ‘in if else ‘den farkı biz duruma 2 yazarsak direk olarak case2: yazan yere gider ve oradaki komutları çalıştırır. case1 ‘e uğramaz.
- Fakat if else komutları ile yazdığımızda duruma 2 dediğimizde önce if durum==1 ‘ e gider ve orada durum 1 mi diye kontrol eder daha sonra durum==2 komutuna iner.
- Bu durum programımızın yavaşlamasını sağlar. Bizim için program ne kadar hızlı çalışırsa o kadar iyidir. Bu yüzden if else yerine switch case kullanmak daha sağlıklıdır.
Programı indirmek için buraya tıklayabilirsiniz.
Program kodlarının tamamı aşağıdadır.
int durum;
Kod:
private void btnswitchelse_Click(object sender, EventArgs e)
{
durum = Convert.ToInt32(txtAcikla.Text);
switch (durum)
{
case 1:
lblSonuc.ForeColor = Color.Blue;
lblSonuc.Text = "Birinci seçeneği seçtiniz.";
break;
case 2:
lblSonuc.ForeColor = Color.Blue;
lblSonuc.Text = "İkinci seçeneği seçtiniz";
break;
}
}private void btnifelse_Click(object sender, EventArgs e)
{
durum = Convert.ToInt32(txtAcikla.Text);
if (durum == 1)
{
lblSonuc.ForeColor = Color.Red;
lblSonuc.Text = "Birinci seçeneği seçtiniz.";
}
else if (durum == 2)
{
lblSonuc.ForeColor = Color.Red;
lblSonuc.Text = "İkinci seçeneği seçtiniz";
}
}