İçeriğe geç
c# da switch case | dogrukod.com

C# da Switch Case İfadesi

Bu yazıda, C # ‘da switch deyimini ve bunları örneklerle nasıl kullanacağımızı öğreneceğiz.

Switch ifadesi, C # ‘ta if-else if ifadesini değiştirmek için kullanılabilir. if-else if ifadesi yerine switch kullanmanın avantajı, kodlar switch ile çok daha temiz ve okunabilir görünecektir.

yazılım öğren, kodlama öğren, c sharp öğren, c# öğren, c# dersleri, c sharp dersleri
yazılım öğren | dogrukod.com

Switch ifadesinin syntax ı söyledir:

switch (değişken/ifade)
{
    case deger1:
        // İfade (veya değişken) = deger1 ise çalıştırılan ifadeler
        break;
    case deger2:
        // İfade (veya değişken) = deger1 ise çalıştırılan ifadeler
        break;
    ... ... ... 
    ... ... ... 
    default:
        // Hiçbir değerin eşleşmemesi durumunda yürütülen ifadeler
}

Switch ifadesi, ifadeyi (veya değişkeni) değerlendirir ve değerini, her durumun (deger1, deger2,…) değerleri (veya ifade) ile karşılaştırır. Eşleşen değeri bulduğunda, bu durumdaki ifadeler yürütülür.

Ancak, yukarıdaki durumlardan hiçbiri ifadeyle eşleşmezse, varsayılan blok içindeki ifadeler çalıştırılır. Switch ifadesi sonundaki varsayılan ifade, if else deyimindeki else bloğuna benzer.

Ancak switch deyimiyle ilgili bir sorun, eşleşen değer bulunduğunda, anahtar bloğunun sonuna kadar ondan sonraki tüm ifadeleri yürütmesidir.

Bundan kaçınmak için her case bloğu sonunda break ifadesini kullanıyoruz. Break ifadesi, switch ifadesinin yürütülmesini sonlandırarak programın eşleşmeyen ifadeleri yürütmesini durdurur.

Örnekler

Şimdi birkaç örnekle switch case alıştırmaları yapalım.

Örnek 1: C# Switch İfadesi

using System;
 
namespace Kosul
{
    class SwitchCase
    {
        public static void Main(string[] args)
        {
            char ch;
            Console.WriteLine("Bir harf girin.");
            ch = Convert.ToChar(Console.ReadLine());
 
            switch(Char.ToLower(ch))
            {
                case 'a':
                    Console.WriteLine("Sesli harf.");
                    break;
                case 'e':
                    Console.WriteLine("Sesli harf.");
                    break;
                case 'i':
                    Console.WriteLine("Sesli harf.");
                    break;
                case 'o':
                    Console.WriteLine("Sesli harf.");
                    break;
                case 'u':
                    Console.WriteLine("Sesli harf.");
                    break;
                default:
                    Console.WriteLine("Sessiz harf.");
                    break;
            }
        }
    }
}

Programı çalıştırdığımızda şöyle bir çıktı görürüz:

Bir harf girin.
X
Sessiz harf.

Bu örnekte, kullanıcıdan bir harf girmesi istenir. Harf, büyük harf olması halinde ToLower () yöntemi kullanılarak küçük harfe dönüştürülür.

Daha sonra switch deyimi, kullanıcı tarafından girilen harfin a, e, i, o veya u olup olmadığını kontrol eder.

Durumlardan biri eşleşirse, Sesli harf yazdırılır, aksi takdirde kontrol varsayılan bloğa gider ve çıktı olarak sesli harf yazdırılmaz.

Tüm ünlülerin çıktısı aynı olduğundan, durumları şu şekilde birleştirebiliriz:

Örnek 2: C# da Gruplandırılmış Switch Case

using System;
 
namespace Kosul
{
    class SwitchCase
    {
        public static void Main(string[] args)
        {
            char ch;
            Console.WriteLine("Bir harf girin.");
            ch = Convert.ToChar(Console.ReadLine());
 
            switch(Char.ToLower(ch))
            {
                case 'a':
                case 'e':
                case 'i':
                case 'o':
                case 'u':
                    Console.WriteLine("Sesli harf.");
                    break;
                default:
                    Console.WriteLine("Sessiz harf.");
                    break;
            }
        }
    }
}

Her iki programın çıktısı aynıdır. Yukarıdaki programda, tüm ünlüler sesli harf çıktısını yazdırır ve switch deyimini sonlandırır.

Switch ifadesi kodun if-else if ifadesinden daha temiz görünmesini sağlasa da, switch sınırlı veri türleriyle çalışacak şekilde kısıtlanmıştır. C # ‘da switch deyimi yalnızca şunlarla çalışır:

  • İlkel veri türleri: bool, char ve int türü gibi
  • Numaralandırılmış Türler (Enum)
  • String Sınıfı
  • Yukarıdaki veri türlerinin null yapılabilir türleri
yazılım
yazılım dogrukod.com

Örnek 3: C # switch Deyimi kullanan basit hesap makinesi programı

using System;
 
namespace Kosul
{
    class SwitchCase
    {
        public static void Main(string[] args)
        {
            char op;
            double ilk, ikinci, sonuc;
             
            Console.Write("İlk sayıyı girin: ");
            first = Convert.ToDouble(Console.ReadLine());
            Console.Write("İkinci sayıyı girin: ");
            second = Convert.ToDouble(Console.ReadLine());
            Console.Write("Bir işlem girin (+, -, *, /): ");
            op = (char)Console.Read();
 
            switch(op)
            {
                case '+':
                    sonuc = ilk + ikinci;
                    Console.WriteLine("{0} + {1} = {2}", ilk, ikinci, sonuc);
                    break;
                 
                case '-':
                    sonuc = ilk - ikinci;
                    Console.WriteLine("{0} - {1} = {2}", ilk, ikinci, sonuc);
                    break;
                 
                case '*':
                    sonuc = ilk * ikinci;
                    Console.WriteLine("{0} * {1} = {2}", ilk, ikinci, sonuc);
                    break;
                 
                case '/':
                    sonuc = ilk / ikinci;
                    Console.WriteLine("{0} / {1} = {2}", ilk, ikinci, sonuc);
                    break;
 
                default:
                    Console.WriteLine("Invalid Operator");
                    break;
                     
            }
        }
    }
}

Programı çalıştırdığımızda çıktı şu şekilde olacaktır:

İlk sayıyı girin: -13.11
İkinci sayıyı girin: 2.41
Bir işlem girin (+, -, *, /): *
-13.11 * 2.41 = -31.5951

Yukarıdaki program, kullanıcıdan girdi olarak iki işlenen ve bir işleyici alır ve operatöre bağlı olarak işlemi gerçekleştirir.

Girişler, ReadLine () ve Read () yöntemi kullanılarak kullanıcıdan alınır.

Program, karar vermek için switch case ifadesini kullanır. Alternatif olarak, aynı işlemi gerçekleştirmek için if-else if ifadesini de kullanabiliriz.

Bir cevap yazın

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