1-) C# - Switch Kullanımı
2
3 4 5 6 7 8 9 10 11 12 13 | int number = 1; switch (number) { case 1: Console.WriteLine("Durum 1"); break; case 2: Console.WriteLine("Durum 2"); break; default: Console.WriteLine("Varsayılan durum"); break; } |
Switch case’i bu örnek üzerinden anlatmak gerekirse switch parantezleri arasına aldığımız number adlı değişkene sahip değer case ile işaretlediğimiz ilgili değere direkt olarak yönlendirilip ilgili case bloğunun break ile durdurma bölgesi olarak işaretlediğimiz kısma kadarki kod bloklarımız çalışmış olacaktır eğer break; satırı unutulur ise compile time’da hata fırlatılacaktır, üstteki örnekte number değişkeninin değeri 1 olduğu için case 1 bloğu çalışacaktır.
default bloğu if-else kontrolündeki else’e karşılık gelmektedir eğer number içerisindeki değer hiçbir case bloğundaki değer ile eşleşmiyor ise default bloğu çalıştırılacaktır.
Birden Fazla Case İçin Aynı Bloğu Çalıştırma
Bu duruma verilebilecek en iyi örnek DateTime.Now.DayOfWeek enum’ı ile haftanın günleri için verilen sayısal değere göre haftaiçi yada haftasonunda olup olmadığımızı ekrana yazdırmak olacaktır.
switch(DateTime.Now.DayOfWeek) {
case DayOfWeek.Monday:
case DayOfWeek.Tuesday:
case DayOfWeek.Wednesday:
case DayOfWeek.Thursday:
case DayOfWeek.Friday:
Console.WriteLine("Haftaiçindeyiz çalışmaya devam...");
break;
case DayOfWeek.Saturday:
case DayOfWeek.Sunday:
Console.WriteLine("Dinlen şimdi pazartesi iş bizi bekler...");
break;
}
Dotnetfiddle sistem saati gününe göre yani bugün için dinamik olarak ilgili case bloğu çalıştırılıyor olacaktır.
Üstteki kod bloğunu isterseniz şu şekilde değiştirip kodu kısaltabilirsiniz DateTime.Now.DayOfWeek özelliğinin dönebileceği 7 tür enum vardır siz bu durumda şunu yapabilirsiniz hafta sonu günleri olan cumartesi ve pazar için case bloğu yazıp hafta içi için yazdığımız case bloklarını silip default: bloğuna alttaki gibi yazarakda kodunuzu kısaltabilirsiniz. Bunu if-else yapısında else bloğunda yapabiliyoruz zaten ve default: ifadesinin else ifadesine karşılık geldiğini de daha önce paylaşmıştık.
Üstteki kodu switch-case-default yapısını kullanacak şekilde yaparsak son hali şu olmalı.
1 2 3 4 5 6 7 8 9 | switch(DateTime.Now.DayOfWeek) { case DayOfWeek.Saturday: case DayOfWeek.Sunday: Console.WriteLine("Dinlen şimdi pazartesi iş bizi bekler..."); break; default: Console.WriteLine("Haftaiçindeyiz çalışmaya devam..."); break; |