Switch - case yapısı ve dört işlem örneği
Switch – case :
Bir önceki paylaşımımda sizlere if koşul ifadelerinin
kullanımından bahsetmiştim. Bu yazımda ise if – elseif - else bloğuyla aynı
mantıkla çalışan yazılımcının isteğine göre farklı yerlerde kullanabileceği
switch – case koşul ifadesini bir örnekle anlatacağım.
Örneğimizi önce if – elseif – else koşul ifadelerini
kullanarak yazacağım daha sonra aynı işlemi gerçekleştiren switch – case ifadesini
yazacağım.
Programımızda kullanıcıdan girmesini istediğimiz iki sayının
ekranda görülen işlem tiplerinden birini seçmesiyle o işlemi bu sayılara
uygulayan bir örnek oluşturacağız.
if – elseif- else kullanımı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | tekrar: // 1,2,3,4 seçimlerinden farklı bir seçim yapılırsa program buraya tekrar dönecek. //yapacağımız işlemlerin sonuçlarını tanımlıyoruz. int carpma = 0, toplam = 0, cikarma = 0; float bolme = 0; //bölme işlemi sonucu kesirli sayı çıkma ihtimaline karşılık float tanımlıyoruz. Console.WriteLine("1.sayi giriniz: "); int a = int.Parse(Console.ReadLine()); Console.WriteLine("2.sayi giriniz: "); int b = int.Parse(Console.ReadLine()); Console.WriteLine("ISLEM MENUSU"); Console.WriteLine("1) toplama"); Console.WriteLine("2) cikarma"); Console.WriteLine("3) carpma"); Console.WriteLine("4) bolme"); Console.WriteLine("seciminiz: "); string secim = Console.ReadLine(); if (secim == "1") { toplam = a + b; Console.WriteLine("toplam sonucu: " + toplam); Console.WriteLine("{0} + {1} = {2}", a, b, toplam); //işlemler bu şekilde şablon yöntemiyle de yazılabilir. } else if (secim == "2" && a > b) //pozitif sonuçlar elde etmek amaçlı büyük sayı kontrolü yapıyoruz. { cikarma = a - b; Console.WriteLine("cikarma sonucu: " + cikarma); } else if (secim == "2" && a < b) { cikarma = b - a; Console.WriteLine("cikarma sonucu: " + cikarma); } else if (secim == "3") { carpma = a * b; Console.WriteLine("capma sonucu: " + carpma); } else if (secim == "4" && a > b) { bolme = (float)a / b; Console.WriteLine("bolme sonucu: " + bolme); } else if (secim == "4" && a < b) { bolme = (float)b / a; Console.WriteLine("bolme sonucu: " + bolme); } else goto tekrar; Console.ReadKey(); |
Aynı işlemleri swicth - case kullanarak da yaptıralım:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | tekrar: int carpma = 0, toplam = 0, cikarma = 0; float bolme = 0; //bölme işlemi sonucu kesirli sayı çıkma ihtimaline karşılık float tanımlıyoruz. Console.WriteLine("1.sayi giriniz: "); int a = int.Parse(Console.ReadLine()); Console.WriteLine("2.sayi giriniz: "); int b = int.Parse(Console.ReadLine()); Console.WriteLine("ISLEM MENUSU"); Console.WriteLine("1) toplama"); Console.WriteLine("2) cikarma"); Console.WriteLine("3) carpma"); Console.WriteLine("4) bolme"); Console.WriteLine("seciminiz: "); string secim = Console.ReadLine(); switch (secim) { case "1": //EĞER SEÇİM 1 İSE BU BLOĞU UYGULA { toplam = a + b; Console.WriteLine("toplam sonucu: " + toplam); break;//İŞLEMİ YAPIP DİĞER CASE LERE GİRMEDEN PROGRAMI BİTİRMESİ İÇİN YAZILIR } case "2"://EĞER SEÇİM 2 İSE BU BLOĞU UYGULA { cikarma = a - b; Console.WriteLine("cikarma sonucu: " + cikarma); break; } case "3"://EĞER SEÇİM 3 İSE BU BLOĞU UYGULA { carpma = a * b; Console.WriteLine("capma sonucu: " + carpma); break; } case "4"://EĞER SEÇİM 4 İSE BU BLOĞU UYGULA { bolme = (float)a / b; Console.WriteLine("bolme sonucu: " + bolme); break; } default: goto tekrar;// TEKRAKA GİT! } Console.ReadKey(); |
Program çıktısı olarak bir bölme işlemi gerçekleştirelim:
Yukarıda anlattığım şekilde iki koşul ifadesi de aynı mantıkla çalışıyor. Artık programı yazarken hangisi kolayınıza geliyorsa veya hangisinin daha kullanışlı olacağına inanıyorsanız seçmesi sizin. İyi kodlamalar..
Kolay gelsin. Öncelikle tebrik ediyorum. Bir sorum olacaktı. Çıkartma işlemimizin pozitif çıkmasını sağladık if else ile ama switch case de bunu yapmadık nasıl yapabiliriz? Bir de bölme işlem için soracaktım bunu. Tam sayı olarak nasıl çıkartabiliriz switch case için ?
YanıtlaSil