CodeBlanks Logo Icon CodeBlanks

Hata yönetimi

  • C# kursu
  • Başlangıç
  • Ders 22/116
  • 6 dk

try/catch ile geçersiz girdileri güvenle yakalarsın.

Menü ve döngü

Hesap makinesini sürekli çalışır hale getirmek için iki yapıya ihtiyacımız var: bir menü ve bir döngü.

Menü, kullanıcının seçtiği operatöre göre doğru metodu çağırır. C# dilinde menü için switch deyimi uygundur: her case bir operatörü temsil eder. Sürekli çalışma için while döngüsü kullanırız; koşul sağlandıkça döngü döner.

Bu derste switch ve while yapılarını birleştirerek hesap makinesini birden fazla işlem yapacak şekilde geliştireceğiz.

switch case yapısı

switch deyimi bir ifadeyi alır ve eşleşen case etiketine göre dallanır. Hesap makinesinde operatör stringini ("+", "-", "*", "/") switch ile test ederiz.

switch (op)
{
    case "+":
        result = calc.Add(a, b);
        break;
    case "/":
        result = calc.Divide(a, b);
        break;
}

Her case bloğunun sonunda break bulunmalı; aksi halde sonraki case'e düşülür.

Uygulama Menü döngüsünü ekle

ops dizisi üzerinde while ile döngü kur. Her adımda operatörü al, switch ile doğru metodu çağır ve sonucu Console.WriteLine(result) ile yaz. Her case'ten sonra break ekle. Döngü sonunda i++ artırmayı unutma.

Başlangıç kodu

Program.cs
using System;

class Calculator
{
    public double Add(double a, double b) { return a + b; }
    public double Subtract(double a, double b) { return a - b; }
    public double Multiply(double a, double b) { return a * b; }
    public double Divide(double a, double b)
    {
        if (b == 0) throw new DivideByZeroException("Sıfıra bölme");
        return a / b;
    }
}

class Program
{
    static void Main()
    {
        var calc = new Calculator();
        // Test için sabit operatör listesi
        string[] ops = { "+", "-", "*", "/" };
        double a = 20;
        double b = 5;
        int i = 0;
        // while ile ops üzerinde gezin, switch ile işlemi seç ve sonucu yaz
    }
}

Örnek çözüm

Program.cs
using System;

class Calculator
{
    public double Add(double a, double b) { return a + b; }
    public double Subtract(double a, double b) { return a - b; }
    public double Multiply(double a, double b) { return a * b; }
    public double Divide(double a, double b)
    {
        if (b == 0) throw new DivideByZeroException("Sıfıra bölme");
        return a / b;
    }
}

class Program
{
    static void Main()
    {
        var calc = new Calculator();
        // Test için sabit operatör listesi
        string[] ops = { "+", "-", "*", "/" };
        double a = 20;
        double b = 5;
        int i = 0;
        while (i < ops.Length)
        {
            string op = ops[i];
            double result = 0;
            switch (op)
            {
                case "+":
                    result = calc.Add(a, b);
                    break;
                case "-":
                    result = calc.Subtract(a, b);
                    break;
                case "*":
                    result = calc.Multiply(a, b);
                    break;
                case "/":
                    result = calc.Divide(a, b);
                    break;
            }
            Console.WriteLine(result);
            i++;
        }
    }
}

Beklenen çıktı

25
15
100
4

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Operatörü işlemle eşleştir

Kavram Anlamı
+ Toplama
- Çıkarma
* Çarpma
/ Bölme

2 Sürekli çalışma için hangi döngü kullanılır?

  • while (koşul sağlandıkça) Doğru cevap
  • if (koşul)
  • try (hata yakalama)
  • for (sabit sayıda adım)

Açıklama: while koşul sağlandıkça döngüyü döndürür.

3 while koşulunu yaz

Soru
int i = 0;
while (____) {
    // döngü gövdesi
    i++;
}
Cevap
int i = 0;
while (i < ops.Length) {
    // döngü gövdesi
    i++;
}

Açıklama: i, dizi uzunluğundan küçük oldukça döngü döner.

Başlangıç bölümündeki tüm dersler