Ders-7) Konsol ile switch case komutu

Merhaba arkadaşlar, Programlama temellerine ait tüm derslere burdan ulaşabilirsiniz.


Switch-Case deyimi de If-Else deyimleri gibi karar kontrol mekanizmalarında kullanılır. Switch-Case deyimi genellikle karmaşık if-else bloklarının yerine daha okunabilir oldukları için tercih edilir. Switch-Case ile yapabilecek karşılaştırmalar if-else ile de yapılabilir. Switch-Case yapısı şu şekilde çalışır: Bir deyimin değeri, sabitlerden oluşan bir listede peş peşe test edilir. Deyimin değeri sabitlerden birisiyle eşleşince bu eşleşmeyle ilgili işlemler gerçekleştirilir.

Switch-Case ifadesinin genel formu şu şekildedir:

switch(ifade)
{
case sabit1:
Yapılacak işlemler;
break;
case sabit2:
Yapılacak işlemler;
break;
case sabit3:
Yapılacak işlemler;
break;

default:
Yapılacak işlemler;
break;
}

Switch-Case yapısının çalışması aşağıda anlatıldığı gibidir:

  • Önce switch parantezleri içindeki ifade hesaplanır.
  • Programın akışı, hesaplanan ifade ile aynı case sabitinin bulunduğu satıra gelir.
  • Eğer hesaplanan ifade, mevcut case sabitlerinden herhangi birisi ile eşleşmiyorsa default anahtar sözcüğünün bulunduğu yere gelir ve program buradan devam eder.


Her case satırı içindeki işlemler tamamlandıktan sonra ilgili case satırının sonuna gelindiğini belirtmek için break komutu kullanılır.

Switch-Case Yapısı İle İlgili Önemli Kurallar:

  • Case anahtar sözcüğünün yanındaki ifadeler sabit olmak zorundadır. Bu ifadeler içinde değişken bulunamaz.
  • Case ifadeleri herhangi bir tam sayı sabiti, karakter veya string sabiti olabilir.
  • Default durumu istenen yere yazılabilir. Aynı şekilde case ifadeleri de istenen sırada yazılabilir.
  • Bir switch bloğunda iki veya daha fazla sayıda aynı değere sahip case ifadesi bulunamaz.
  • Bir switch bloğunda default case olmak zorunda değildir.
  • Akış herhangi bir case ifadesine geldiğinde akış farklı bir case ifadesine yönlendirilmek istenirse goto anahtar sözcüğü kullanılır.

Aşağıdaki örnek bu konunun daha iyi anlaşılmasını sağlayacaktır.

Klavyeden girilen 1-12 arasındaki sayı değerine göre o sıradaki ayın ismini veren programın kodları aşağıdaki gibidir.

byte ay;
Console.Write("1-12 arasında bir sayı giriniz:");
ay = Convert.ToByte(Console.ReadLine());
switch (ay)
{
case 1:
Console.WriteLine("{0}.ay OCAK ayıdır.", ay);
break;
case 2:
Console.WriteLine("{0}.ay ŞUBAT ayıdır.", ay);
break;
case 3:
Console.WriteLine("{0}.ay MART ayıdır.", ay);
break;
case 4:
16Console.WriteLine("{0}.ay NİSAN ayıdır.", ay);
break;
case 5:
Console.WriteLine("{0}.ay MAYIS ayıdır.", ay);
break;
case 6:
Console.WriteLine("{0}.ay HAZİRAN ayıdır.", ay);
break;
case 7:
Console.WriteLine("{0}.ay TEMMUZ ayıdır.", ay);
break;
case 8:
Console.WriteLine("{0}.ay AĞUSTOS ayıdır.", ay);
break;
case 9:
Console.WriteLine("{0}.ay EYLÜL ayıdır.", ay);
break;
case 10:
Console.WriteLine("{0}.ay EKİM ayıdır.", ay);
break;
case 11:
Console.WriteLine("{0}.ay KASIM ayıdır.", ay);
break;
case 12:
Console.WriteLine("{0}.ay ARALIK ayıdır.", ay);
break;
default:
Console.WriteLine("Girmiş olduğunuz değer 1-12 arasında değildir.");
break;
}

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir