Proje sonu - Hesap makinesi
Tüm parçaları birleştirip hesap makinesini çalışır hale getirirsin.
Proje sonu: hesap makinesini tamamla
Hesap makinesi neredeyse hazır. Tek bir uç durum kaldı: sıfıra bölme. 5 / 0 JavaScript'te Infinity verir, bu da kullanıcı için anlamsızdır.
Bunu önlemek için mevcut if/else zincirine bir else if dalı ekleriz. Koşul: operator === "/" && second === 0. Yani işlem bölme VE ikinci sayı sıfır ise, result'a 'sıfıra bölme' hatası koyarız.
else if, ilk if yanlış olduğunda değerlendirilen ek bir koşuldur. Böylece zincir if / else if / else olur.
Sıfıra bölme kontrolü
else if dalını mevcut if ile else arasına yerleştiririz. Sıralama önemlidir: önce genel geçersiz giriş kontrolü, sonra özel sıfıra bölme kontrolü, en son da normal hesaplama.
Koşul iki parçalıdır: operator === "/" (işlem bölme) VE second === 0 (ikinci sayı sıfır). İkisi de doğru olmalı, bu yüzden && (ve) ile birleştiririz.
Bu dalda result'a 'sıfıra bölme' mesajı koyarız ve switch çalışmaz.
Uygulama Sıfıra bölme kontrolünü ekle
Hesap makinesini tamamla. Bölme işleminde ikinci sayı 0 ise sonuç Infinity olur. Bunu önlemek için mevcut if/else yapısına bir else if dalı ekle. Koşul: operator === "/" && second === 0. Bu dalda result'a bir hata mesajı ata. Mevcut switch else bloğunda kalsın.
Örnek çözümü göster
// Basit hesap makinesi: iki sayı, bir işlem
const firstInput = "25";
const operator = "+";
const secondInput = "4";
const first = parseFloat(firstInput);
const second = parseFloat(secondInput);
let result;
if (isNaN(first) || isNaN(second)) {
result = "Hata: geçerli bir sayı girin";
} else if (operator === "/" && second === 0) {
result = "Hata: sıfıra bölme";
} else {
switch (operator) {
case "+":
result = first + second;
break;
case "-":
result = first - second;
break;
case "*":
result = first * second;
break;
case "/":
result = first / second;
break;
default:
result = "Bilinmeyen işlem";
}
}
console.log("Sonuç: " + result);
Hesap makinesi tamam!
Beş dersin sonunda çalışan bir hesap makinen var. Şunları bir araya getirdin:
constveletile değişkenlerparseFloatile string'ten sayıya çevirmeswitchile dört işlemif,else if,elseile doğrulamaisNaNile hata yakalama
Aynı kalıbı başka uygulamalarda da kullanabilirsin: veriyi al, doğrula, hesapla, sonucu göster. Sıradaki gruplarda diziler ve döngülerle daha güçlü programlar yazacaksın.
Kendini test et
-
Bir if/else if/else zincirinde else if dalı ne zaman değerlendirilir?
- İlk if koşulu yanlış olduğunda
- İlk if koşulu doğru olduğunda
- Her zaman, bağımsız olarak
- Yalnızca switch kullanılmadığında
Cevabı göster
İlk if koşulu yanlış olduğunda — Doğru. else if, ancak önceki if yanlışsa değerlendirilir.
-
else if koşulunu tamamla
if (isNaN(first) || isNaN(second)) { result = "Hata: geçerli bir sayı girin"; } ____ result = "Hata: sıfıra bölme"; }Cevabı göster
if (isNaN(first) || isNaN(second)) { result = "Hata: geçerli bir sayı girin"; } else if (operator === "/" && second === 0) { result = "Hata: sıfıra bölme"; } -
Proje kavramlarını eşleştir
- switch
- Çok dallı seçim yapar
- isNaN
- Sayı doğrulaması yapar
- else if
- Ek koşul dalı ekler
- &&
- İki koşulun ikisi de doğru