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
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
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
int i = 0;
while (____) {
// döngü gövdesi
i++;
}
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.