Switch Case Yapısı
C# dilinde Switch-Case yapısı, birden fazla koşulu kontrol etmek için kullanılan bir karar yapısıdır. If-Else yapısına alternatif olarak kullanılan Switch-Case, özellikle çok sayıda durumu kontrol etmek gerektiğinde kodun daha okunabilir ve düzenli olmasını sağlar.
Switch-Case Yapısının Kullanımı
Switch-Case, bir değişkenin değerine göre farklı durumlar için belirli kod bloklarını çalıştırır. Eğer hiçbir case durumu sağlanmazsa, isteğe bağlı olarak bir default bloğu devreye girer.
Söz Dizimi
switch (ifade)
{
case değer1:
// değer1 sağlanırsa çalışacak kod
break;
case değer2:
// değer2 sağlanırsa çalışacak kod
break;
...
default:
// Hiçbir case sağlanmazsa çalışacak kod
break;
}
Örnekler
1. Gün İsimleri
Girilen bir sayıya göre haftanın gün ismini bulan program:
using System;
class Program
{
static void Main()
{
Console.Write("Bir sayı girin (1-7): ");
int gun = Convert.ToInt32(Console.ReadLine());
switch (gun)
{
case 1:
Console.WriteLine("Pazartesi");
break;
case 2:
Console.WriteLine("Salı");
break;
case 3:
Console.WriteLine("Çarşamba");
break;
case 4:
Console.WriteLine("Perşembe");
break;
case 5:
Console.WriteLine("Cuma");
break;
case 6:
Console.WriteLine("Cumartesi");
break;
case 7:
Console.WriteLine("Pazar");
break;
default:
Console.WriteLine("Geçersiz bir sayı girdiniz.");
break;
}
}
}
2. Basit Hesap Makinesi
Girilen işlemi kontrol ederek toplama, çıkarma, çarpma veya bölme yapan program:
using System;
class Program
{
static void Main()
{
Console.Write("Birinci sayıyı girin: ");
double sayi1 = Convert.ToDouble(Console.ReadLine());
Console.Write("İkinci sayıyı girin: ");
double sayi2 = Convert.ToDouble(Console.ReadLine());
Console.Write("Bir işlem seçin (+, -, *, /): ");
char islem = Convert.ToChar(Console.ReadLine());
switch (islem)
{
case '+':
Console.WriteLine("Sonuç: " + (sayi1 + sayi2));
break;
case '-':
Console.WriteLine("Sonuç: " + (sayi1 - sayi2));
break;
case '*':
Console.WriteLine("Sonuç: " + (sayi1 * sayi2));
break;
case '/':
if (sayi2 != 0)
{
Console.WriteLine("Sonuç: " + (sayi1 / sayi2));
}
else
{
Console.WriteLine("Bir sayı sıfıra bölünemez.");
}
break;
default:
Console.WriteLine("Geçersiz bir işlem seçtiniz.");
break;
}
}
}
Switch-Case ile İlgili Dikkat Edilmesi Gerekenler
- Her
casebloğunun sonundabreakifadesi bulunmalıdır. Aksi takdirde program, bir sonraki case bloğunu da çalıştırır. defaultbloğu isteğe bağlıdır ancak hiçbir case durumu sağlanmadığında çalıştırılacak bir kod yazmak için kullanışlıdır.- Switch-Case yapısı, sadece sabit değerler (sayılar, karakterler vb.) ile çalışır. Mantıksal koşullar için uygun değildir.
Sonuç
Switch-Case yapısı, birden fazla durumu kontrol etmek için kullanışlı bir yapı sunar. Bu yapı, If-Else ifadelerine kıyasla daha düzenli ve okunabilir bir kod yazmanızı sağlar. Özellikle çoklu durumların olduğu projelerde Switch-Case ile kodlarınızı daha etkili bir şekilde organize edebilirsiniz.