Yükleniyor...

switch

int choice = 2; tam sayı 2yi saklar. Sonra switch (choice) o sayıyı sabit etiketlerle karşılaştırır. choice 2 iken case 2 çalışır ve Console.WriteLine("mid") değeri mid yazar. Ekran tek satırdır. Genel sınıf adını Pine tutun.

Bir değer, birkaç sabit etiket

Pine dosyasını açın. Sınıf adı Pine kalır. Bu sayfa türü yeniden adlandırmaz. bool ready satırı hâlâ varsa silin; if (ready), pass, wait ve önceki sayfadaki her else bloğu dahil. bool both satırı varsa silin. Her ReadLine satırını silin. Tuttuğunuz dosyada yazma beklemesi yok, ready yok ve if / else çatalı da yok. Ekranı yalnızca eşleşen case altındaki veya default altındaki yazma satırı yazar.

Main içinde switchten önce bir tam sayı saklayın: int choice = 2;. int tür sözcüğüdür. choice addır ve küçük c ile başlar. 2 etrafında tırnak yoktur. Noktalı virgül saklama satırını bitirir. O satır ekranı yazmaz. Ondan sonra switchin kendisi gelir:
switch (choice) {
case 1:
Console.WriteLine("low");
break;
case 2:
Console.WriteLine("mid");
break;
case 3:
Console.WriteLine("high");
break;
default:
Console.WriteLine("none");
break;
}
switch sözcüğü küçüktür. Parantezin içinde choice adı durur — C#ın her case etiketiyle karşılaştıracağı değer. Her case satırı iki nokta ile biter, noktalı virgülle değil. case 2 altında Console.WriteLine("mid"); oturur, sonra break sözcüğü ve bir noktalı virgül. choice 2 tutarken C# case 2ye girer, mid yazar, breake gelir ve bütün switchten çıkar. case 3 ve default bu turda çalışmaz. Dosyayı kaydedin.

Tuttuğunuz dosya

Bu öğretim şeklini tutun. Bir tür sözcüğü, int. Bir ad, choice, 2 olarak saklanmış. choice etrafında parantezli bir switch. 1, 2 ve 3 case'leri; her birinde bir yazma satırı ve bir break. none yazan bir default. ready satırı yok, if yok ve case'lerin dışında çıplak 2 yazımı da yok.

choice is 2

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int choice = 2;
        switch (choice)
        {
            case 1:
                Console.WriteLine("low");
                break;
            case 2:
                Console.WriteLine("mid");
                break;
            case 3:
                Console.WriteLine("high");
                break;
            default:
                Console.WriteLine("none");
                break;
        }
    }
}

Yukarıdan okuyun. using System; kısa adları hazırlar. public class Pine türü adlandırır. public static void Main() çalışma zamanının başladığı yerdir. int choice = 2; 2 saklar. Hiçbir şey yazmaz. switch (choice) karşılaştırmayı başlatır. case 2 eşleşir, bu yüzden Console.WriteLine("mid"); çalışır, sonra break; switchten çıkar. Ekranda bir satır: mid. Ekranda tırnak yok. İkinci satır yok. Tuttuğunuz dosyada bool ready satırı yoktur.

dotnet run ile çalıştırın. Program mid yazar. Yazmanızı beklemez. Saklanan sayı ve switch zaten dosyadaydı. dotnet run bekliyorsa ReadLine hâlâ dosyada. O satırı silin; int choice = 2; ve yukarıdaki switchi tutun. Program seçilen yazma satırından sonra biter. Ekran mid gösterir. Tek satır. Ekran 2 gösteriyorsa hâlâ sayının kendisini yazıyorsunuzdur. Ekran pass veya wait gösteriyorsa if / else dosyası hâlâ yerinde. ready çatalını silin. Ekran none gösteriyorsa choice hiçbir case ile eşleşmeyen bir değerdir — bu sayfanın ikinci dosyasıdır, tuttuğunuz dosya değil. Ekran switch (choice) harflerini gösteriyorsa yazma satırı o karakterleri tırnak içine almıştır. Yanlış satır gösteren bir ekran için .NET SDKyı yeniden kurmazsınız.

Neden mid de low veya high değil? Çünkü parantezdeki değer 2ydi ve case 2 eşleşen etikettir. C# bu çalıştırmada rakam 2yi yazmaz; o rakamı bilerek yazmadıkça. Eşleşen case altında çalışan yazma satırını yazar. Parantez karşılaştırılan değeri tutar. Her case etiketi burada sabit bir tam sayıdır. break switchten çıkar ki sonraki case'ler sessiz kalsın. default hiçbir case ile eşleşmeyen değerleri bekler — choice 2 iken kullanılmadan kalır.

Hiçbir case eşleşmediğinde

Yalnızca saklanan değeri değiştirin: int choice = 9;. switch yapısı olduğu gibi kalsın. Şimdi case 1, case 2 veya case 3 hiçbiri eşleşmez. C# defaulta gider ve Console.WriteLine("none"); çalıştırır. Ekran none göstermelidir, tek satır.

choice is 9

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int choice = 9;
        switch (choice)
        {
            case 1:
                Console.WriteLine("low");
                break;
            case 2:
                Console.WriteLine("mid");
                break;
            case 3:
                Console.WriteLine("high");
                break;
            default:
                Console.WriteLine("none");
                break;
        }
    }
}

Bu ikinci dosyadır. Tuttuğunuz dosya değildir. dotnet run çalıştırın. Ekran none gösterir. Tek satır. mid göstermez. Bilerek yazmadıkça 9 da göstermez. Ekran mid gösteriyorsa hâlâ tuttuğunuz dosyadasınızdır; orada choice 2dir. none gördükten sonra tutulan dosyayı geri koyun: int choice = 2; ve case 2de mid yazan aynı switch. Her iki sürüm de geçerli C#tır. Aynı switch şeklini eşleşen case ve default ile öğretirler.

Default çalıştırmayı bir kez daha sırayla okuyun. choice 9 tutar. switch (choice) başlar. case 1 eşleşmez. case 2 eşleşmez. case 3 eşleşmez. Denetim defaultta devam eder. Console.WriteLine("none"); yürütülür. Ekranda bir satır. Rakam 9un kendisi, bilerek yazmadıkça görünmez.

break sonraki case'leri durdurur

break süs değildir. Onsuz C#, bir eşleşmeden sonra sonraki case'in satırlarını da çalıştırabilir. O fall-through yeni başlayanları şaşırtır. İşte case 2den sonra bilerek break unutan kısa bir demo — tuttuğunuz dosya değildir:

missing break after case 2

csharp
using System;

public class Pine
{
    public static void Main()
    {
        int choice = 2;
        switch (choice)
        {
            case 1:
                Console.WriteLine("low");
                break;
            case 2:
                Console.WriteLine("mid");
            case 3:
                Console.WriteLine("high");
                break;
            default:
                Console.WriteLine("none");
                break;
        }
    }
}

choice 2 eşitken ve case 2 altında break yokken ekran bir satırda mid, sonrakinde high gösterebilir. case 2 eşleşti, mid yazdı, sonra case 3e düştü ve high yazdı. Tuttuğunuz dosya her case altına break koyar ki her yol tam olarak bir satır yazsın. Pine dosyasını yeniden tutulan ders dosyası saymadan önce breaki geri koyun.

Etiketleri net tutan kurallar

Switch edilen değer etrafında parantez zorunludur. Parantezsiz switch choice { … } yazmak buildin hata yazmasına yol açar. Bu sayfadaki her case etiketi bir tam sayı sabitidir: case 1:, case 2:, case 3:. Etiketten sonra iki nokta gelir. İki nokta yerine noktalı virgülle case 2; yazmak bu dersin build ettiği şekil değildir. defaulttan sonra değer yoktur — yalnızca default: sonra «hiçbir şey eşleşmedi» satırları.

switch if ile aynı araç değildir. if (ready) true veya false sorusu sorar. switch (choice) bir değeri sabit etiket listesiyle eşleştirir. Bir bool ile switch (ready) yazıp önceki sayfanın ders şeklini beklemeyin. Bu sayfanın demolarını choice adlı bir int ve tam sayı case etiketlerinde tutun. if (score > 10) gibi karşılaştırmalar aralık gerektiğinde hâlâ ife aittir; switch değerler ayrık ve önceden bilindiğinde parlar.

Yaygın bir karışıklık sözdiziminin kendisini yazmaktır: Console.WriteLine("switch (choice)");. Bu, switch (choice) karakterlerini yazar. Case seçmez. Başka bir karışıklık aynı Main içinde bir if / else demosu bırakıp ekranın neden mid yerine pass gösterdiğine şaşmaktır. Bu oturumun Maini yalnızca inti ve switchi tutmalıdır.

📊 choice and the screen

choice Screen
1 low
2 mid
3 high
9 none

Tabloyu bir çalıştırmanın yerine değil, çalıştırmadan sonra kontrol için kullanın. Tuttuğunuz dosyayla choice 2 mid yazar. İkinci dosyayla choice 9 none yazar. choice 1 low yazar. choice 3 high yazar. choice 2 için hem mid hem high görünüyorsa case 2 altında bir break eksiktir — .NET SDKyı yeniden kurmak yerine break'leri düzeltin.

Artık bir tam sayı saklayabilir, onu switch (…) içine koyabilir ve her sabit değere kendi caseini, bir yazma satırı ve bir break ile verebilirsiniz. Case eşleşince o satır çalışır; hiçbir şey eşleşmezse default çalışır. Sonraki sayfa fordur; orada aynı satır bloğu bir sayaç değişirken tekrar tekrar çalışabilir.

Ekran eşleşen case'tir

Tuttuğunuz dosya mid yazar. choice adı parantezdedir ve choice ekranda değildir. Rakam 2 saklama satırındadır ve 2 ekranda değildir. Diğer case'ler dosyadadır ve tutulan çalıştırmada çalışmaz. switch (choice) etrafındaki tırnaklar harf yazar, eşleşmiş case değil.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
6
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek