C# Dersleri 23 - Switch Case Yapısı


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 case bloğunun sonunda break ifadesi bulunmalıdır. Aksi takdirde program, bir sonraki case bloğunu da çalıştırır.
  • default bloğ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.