C++
Hata yönetimi
try/catch ile geçersiz girdileri güvenle yakalarsın.
Hata yönetimi
Bölme işleminde sıfıra bölme büyük bir sorundur: a / 0 tanımsızdır ve program çökebilir. Bu yüzden bölmeyi yapmadan önce b'nin sıfır olup olmadığını kontrol etmeliyiz.
C++'ta if ifadesi bir koşulu denetler. if (b == 0) yazdığında, b sıfırsa sonraki blok çalışır. Böylece hatayı yakalayıp güvenli bir değer dönebilirsin.
Bu projede sıfıra bölme durumunda 0 döneceğiz. Gerçek uygulamada bir hata mesajı yazdırabilir veya bir istisna fırlatabilirsin; ama şimdilik basit tutuyoruz.
if ile koşul
if ifadesi bir koşul doğruysa bir blok çalıştırır. Sözdizimi: if (koşul) { ... }. Koşul true ise blok işler, false ise atlanır.
Sıfır kontrolü için: if (b == 0) return 0;. Burada == eşitlik karşılaştırmasıdır (atama = ile karıştırma). b sıfırsa metot 0 döndürür ve bölme yapılmaz.
return metottan anında çıktığı için, sıfır kontrolünden sonraki return a / b; satırı yalnızca b sıfır değilse çalışır. Bu yapı erken çıkış (early return) olarak adlandırılır.
Uygulama Sıfır kontrolü ekle
divide metodunun gövdesini değiştir: önce if (b == 0) return 0; ile sıfır kontrolü ekle, sonra return a / b; ile normal bölmeyi yap. main zaten calc.divide(20, 4) ve calc.divide(20, 0) çağrılarıyla hazır; çıktı 5 ve 0 olmalı.
Örnek çözümü göster
#include <iostream>
class Calculator {
public:
double add(double a, double b) { return a + b; }
double subtract(double a, double b) { return a - b; }
double multiply(double a, double b) { return a * b; }
double divide(double a, double b) {
if (b == 0) return 0;
return a / b;
}
};
int main() {
Calculator calc;
// Bölmede sıfır kontrolü ekle
std::cout << calc.divide(20, 4) << std::endl;
std::cout << calc.divide(20, 0) << std::endl;
return 0;
}
Kendini test et
-
Bölmede bölen sıfır olursa ne yapılmalı?
- Program çöker
- Sonuç 0 olur
- Önce kontrol edip 0 dönmek
- Derleme hatası verilir
Cevabı göster
Önce kontrol edip 0 dönmek — Önce if (b == 0) ile kontrol edip güvenli değer dönmeliyiz.
-
Sıfır kontrolü
if (____) return 0;
Cevabı göster
if (b == 0) return 0;
-
Hata yönetimi kavramlarını eşleştir
- if (b == 0)
- Sıfır kontrolü
- return 0;
- Güvenli değer
- ==
- Eşitlik karşılaştırma
- early return
- Erken çıkış
Sıradaki ders: Birleştirme