CodeBlanks Logo Icon CodeBlanks

switch deyimi

C# kursu · Başlangıç · Ders 38/116

switch, case, break ve default ile çoklu durum seçmeyi öğrenirsin.

switch deyimi

Tek bir değere göre çok sayıda dal seçmek için switch kullanırsın. switch (day) ile değeri alır, her case etiketinde olası bir değer karşılaştırırsın. break ile daldan çıkarsın.

Hiçbir case eşleşmezse default dalı çalışır. switch, uzun else if zincirlerine göre daha okunaklıdır; özellikle enum veya tamsayı değerleri seçerken çok kullanışlıdır.

break ve fall-through

C#'ta case dalları arasında otomatik geçiş (fall-through) yoktur; her dalın sonunda break (veya return, goto) bulunmalıdır. Bu, kazara geçiş hatasını önler.

Birden fazla değeri aynı bloğa göndermek için case etiketlerini arka arkaya yazabilirsin: case 1:\ncase 2: Console.WriteLine("küçük"); break;. Burada 1 ve 2 aynı çıktıyı üretir; bu tek blok için geçerlidir.

Uygulama Gün numarasını yazıya çevir

Bir day değişkenini 3 değeriyle tanımla. switch ile day değerini kontrol et: case 1 "pazartesi", case 2 "salı", case 3 "çarşamba", default ise "bilinmiyor" yazsın. Her case'te break kullan.

Örnek çözümü göster
switch (day) aç, case 1/2/3 ve default dallarını break ile yaz.
Örnek çözüm:
using System;

class Program
{
    static void Main()
    {
        int day = 3;
        switch (day)
        {
            case 1:
                Console.WriteLine("pazartesi");
                break;
            case 2:
                Console.WriteLine("salı");
                break;
            case 3:
                Console.WriteLine("çarşamba");
                break;
            default:
                Console.WriteLine("bilinmiyor");
                break;
        }
    }
}

Kendini test et

  1. switch parçasını anlamına eşle

    switch
    Değeri alır
    case
    Olası değer
    break
    Daldan çıkar
    default
    Hiçbiri değilse
  2. switch'te 'case 1: case 2: Console.WriteLine("x"); break;' ne yapar?

    switch (n) {
      case 1:
      case 2:
        Console.WriteLine("x");
        break;
    }
    • Sadece n=1 için 'x' yazar
    • Hem n=1 hem n=2 için 'x' yazar
    • Derleme hatası verir
    • Hiçbir şey yazdırmaz
    Cevabı göster

    Hem n=1 hem n=2 için 'x' yazar — Doğru. Boş case etiketleri alt alta yazılınca aynı bloğu paylaşır.

  3. default dalını başlat

    switch (code)
    {
        case 1:
            Console.WriteLine("bir");
            break;
        ____:
            Console.WriteLine("bilinmiyor");
            break;
    }
    Cevabı göster
    switch (code)
    {
        case 1:
            Console.WriteLine("bir");
            break;
        default:
            Console.WriteLine("bilinmiyor");
            break;
    }

Başlangıç bölümündeki tüm dersler