Bu Visual Studio programında switch case bildirimini kullanarak basit bir console hesap makinesi yapacağız. HesapMakinesi adında bir sınıf oluşturup kullanıcıdan sayı değerleri ve operatör değeri alarak hesaplanan sonucu ana programa gönderen işlevi yapıp, bu işlevi ana programda kullanacağız. Programdan çıkmak içinde yine Console.Key ifadelerinden ESC ifadesini kullanacağız.
İşte size aşağıdaki iki farklı program birinci programda Sınıf kullanılmıştır. İkinci programda ise sadece ana program içinde yapılmıştır.
C# Console Program Kodu:
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
class HesapMakinesi { public static double islemYap(double sayi1, double sayi2, string op) { // operatör değerine göre case işlemlerinden biri gerçekleştirilir. switch (op) { case "+": return sayi1 + sayi2; case "-": return sayi1 - sayi2; case "*": return sayi1 * sayi2; case "/": // 2. sayı 0 değilse işlemi yapar. if (sayi2 != 0) { return sayi1 / sayi2; } else { return double.NaN; } default: return double.NaN; } } } class Program { static void Main(string[] args) { bool cikis = false; Console.WriteLine("Hesap Makinası \r"); Console.WriteLine("------------------------\n"); while (!cikis) { // Değişkenleri tanımlıyoruz ve boş olarak atıyoruz. string sayi1 = ""; string sayi2 = ""; double sonuc = 0; // Kullanııcıdan birinci sayıyı girmesini istiyoruz Console.Write("Birinci Sayıyı Giriniz: "); sayi1 = Console.ReadLine(); double dogruSayi1 = 0; while (!double.TryParse(sayi1, out dogruSayi1)) { Console.Write("Bu geçerli bir sayı değil. Lütfen bir tamsayı giriniz.: "); sayi1 = Console.ReadLine(); } // Kullanııcıdan ikinci sayıyı girmesini istiyoruz Console.Write("İkinci Sayıyı Giriniz: "); sayi2 = Console.ReadLine(); double dogruSayi2 = 0; while (!double.TryParse(sayi2, out dogruSayi2)) { Console.Write("Bu geçerli bir sayı değil. Lütfen bir tamsayı giriniz. "); sayi2 = Console.ReadLine(); } // İşlem Seçim Bölümü Console.WriteLine("Lütfen Listeden bir işlem seçiniz:"); Console.WriteLine("\t+ - Toplama"); Console.WriteLine("\t- - Çıkarma"); Console.WriteLine("\t* - Çarpma"); Console.WriteLine("\t/ - Bölme"); Console.Write("Seçiminiz? "); string op = Console.ReadLine(); try { sonuc = HesapMakinesi.islemYap(dogruSayi2, dogruSayi1, op); if (double.IsNaN(sonuc)) { Console.WriteLine("Bu işlem matematiksel bir hataya neden oldu.\n"); } else Console.WriteLine("Sonucunuz: {0:0.##}\n", sonuc); } catch (Exception e) { Console.WriteLine("Sonucu hesaplarken bir istisna oluştu \n: " + e.Message); } Console.WriteLine("------------------------\n"); // Kapatmadan önce kullanıcının yanıt vermesini bekleyin. Console.Write("Uygulamadan Çıkmak İçin ESC tuşuna basınız. "); if (Console.ReadKey().Key == ConsoleKey.Escape) cikis = true; Console.WriteLine("\n"); } Console.WriteLine("Program Bitti Bir tuşa basınız\n"); Console.ReadKey(); } } |
Çıktı:
Yöntem 2: Sınıf kullanmadan yapmak isterseniz bu yöntem de ilginizi çekebilir.
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 |
class Program { static void Main(string[] args) { char cikis; //Çıkış yapana kadar işlemi yap do { Console.Clear(); int sonuc = 0; //İşlem Menüsü Console.WriteLine("Toplama İşlemi İçin +"); Console.WriteLine("Çıkarma İşlemi İçin -"); Console.WriteLine("Çarpma İşlemi İçin *"); Console.WriteLine("Bölme İşlemi İçin /"); Console.Write("Yapmak İstediğiniz işlemi Seçin : "); // Sayıları Al Console.Write("1.değeri girin : "); int sayi1 = Convert.ToInt16(Console.ReadLine()); Console.Write("2.değeri girin : "); int sayi2 = Convert.ToInt16(Console.ReadLine()); char secim = Convert.ToChar(Console.ReadLine()); //Karşılaştırma yapısını oluşturduk. Kullanıcının seçimine göre işlemi gerçekleştirdik switch (secim) { case '+': sonuc = sayi1 + sayi2; Console.WriteLine("Toplama işlemini sonucu : {0}", sonuc); break; case '-': sonuc = sayi1 - sayi2; Console.WriteLine("Çıkarma işleminin sonucu : {0}", sonuc); break; case '*': sonuc = sayi1 * sayi2; Console.WriteLine("Çıkarma işleminin sonucu : {0}", sonuc); break; case '/': sonuc = sayi1 / sayi2; Console.WriteLine("Çıkarma işleminin sonucu : {0}", sonuc); break; default: Console.WriteLine("Hatalı Seçim Yaptınız"); break; }// Kullanıcı h tuşuna basmadığı sürece yeni işlem yaptırdık Console.WriteLine("Başka işlem yapacak mısınız?(e/h)"); cikis = Convert.ToChar(Console.ReadLine()); } while (cikis != 'h'); } } |
aralarındaki fark nedir? avantajları ve dezavantajları neler?