CodeBlanks Logo Icon CodeBlanks

Proje sonu - Hesap makinesi

JavaScript kursu · Başlangıç · Ders 29/133

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:

  • const ve let ile değişkenler
  • parseFloat ile string'ten sayıya çevirme
  • switch ile dört işlem
  • if, else if, else ile doğrulama
  • isNaN ile 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

  1. 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.

  2. 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";
    }
  3. 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

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