C#
switch deyimi
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
-
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
-
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.
-
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;
}
Sıradaki ders: Pattern matching