C#'ta karar yapıları [SWITCH - CASE]

Arkadaşlar geçen yazıda if else'i görmüştük.Bu yazıda yine kontrol yapılarından olan Switch - Case'i anlatacağım.İşleyişi nasıldır? Bu da bir tür if - else'dir diyebiliriz, aynı zamanda switch case ile yaptığınız tüm işlemlerinizi if kontrolü ile de yapabilirsiniz.Sadece zaman kazanmak açısından daha avantajlıdır.Switch case'e bir değişken belirlenir ve şartlarına değişken değerleri yazılır.Programda sıra switch case'inizin bulunduğu satıra gelindiğinde; belirlediğiniz değişkenin değeri hangi seçeneğe uyarsa o işlenir, eğer hiçbiri uymazsa default özelliği işlenir, yani bir nevi "else" diyebiliriz.

Switch - Case Yapısı

If - else konusunda yaptığım gibi bundada ilk olarak yapının daha iyi anlaşılması için türkçeleştirip yazacağım.Temel yapı aşağıdaki gibidir;


Sanırsam bu şekilde tam olarak anlaşılamadı.Daha iyi anlaşılabilmesi için kullanıcı notunu girdiğinde (örn. 3) yazı ile gösterelim;


Arkadaşlar programda ilk olarak gördüğünüz gibi kullanıcıdan notunu alıyoruz.Daha sonra "switch(not)" kodu ile switch-case'imizin değişkenini not yapıyoruz.Kodumuzda 1'den 5'e kadar case'ler var.Case'lerin kodunu yazdıktan sonra bitirmek için "break" kodu kullanılır.Aynı zamanda break, döngülerden çıkmak için kullanılır.Neyde konuyu dağıtmadan devam edelim.Nasıl işler? mesela "case 1:" yazmışız eğer not değişkeninin değeri 1 ise burayı işleyecektir.Bunu istediğiniz gibi değiştirebilirsiniz.Mesela string bir değişken içinde yapılabilir.Default ise; eğer değişkenin değeri hiçbir şarta uymuyorsa işlenecek olan kodlardır.Burada da gördüğünüz gibi zaten 1'den 5'e kadar notlar için case oluşturmuşuz, mesela kullanıcı 6 girerse default bölümünü işleyecektir.
MSDN'in sitesinde örnek bir kod buldum birde bunu inceleyebilirsiniz, kahve makinesi için yapılmış bir program, kahvenin boyunu seçtiğinizde kaç para ödemeniz gerektiğini söylüyor;


Bu kod normalde ingilizcedir türkçeye çevirisini ben yaptım eğer hata varsa bildirebilirsiniz.Orjinal kod
Switch-Case yapısı oldukça basit bir yapıdır o yüzden fazla laf kalabalığı yapmak istemiyorum sanırım yeterince açık oldu, yinede merak ettiğiniz bir yer varsa yorum bölümünden sorabilirsiniz.İyi Günler
Umut Coşkun

1 yorum:

Unknown dedi ki...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace kahve_secimi
{
class Program
{
static void Main(string[] args)
{
for (; ; )
{
Console.Clear();
Console.WriteLine("Kahve Çeşitleri:\n \n1.Büyük\n2.Orta\n3.Küçük\n");
Console.Write("\nBir kahve seciniz =>>> ");
string kahve = Convert.ToString(Console.ReadLine());
int fiyat = 0;


switch (kahve)
{
case "1":
case "Küçük":
fiyat += 25;
Console.WriteLine("\nFiyat= " + fiyat + " kuruştur.");
break;
case "2":
fiyat += 25;
goto case "Küçük";


case "3":
fiyat += 50;
goto case "Küçük";



default:
Console.WriteLine(" \nYanlış bir tuşa bastınız. ");
break;
}
Console.ReadLine();
}
}
}
}

Yorum Gönder