Terakhir pada input operator selanjutnya kalkulasi angka dan operator yg telah disimpan sebelumnya, simpan hasil kalkulasi di variable dan tampilkan setelah perulangan selesai (input =)

const validOperators = ['+', '-', '/', '*', '=']
let input
let nums = []
let operator = null
let sum = 0
do {
  input = prompt()
  if(!isNaN(input)) { // input angka
    nums.push(Number(input))
  } else if(validOperators.indexOf(input) >= 0) { // input operator
    if(operator) { // operator telah di-set sebelumnya
      // kalkulasi nums menggunakan operator, simpan ke sum
      switch(operator) {
      case '+':
        sum = nums[0] + nums[1]
        break
      case '-':
        sum = nums[0] - nums[1]
        break
      case '*':
        sum = nums[0] * nums[1]
        break
      case '/':
        sum = nums[0] / nums[1]
        break
      }
      // reset nums, dan gunakan sum sebagai operand kiri
      nums = [sum]
    }
    operator = input
  } else { // input tidak valid
    alert('input tidak valid')
  }
} while (input !== '=')
alert(sum)

Untuk pengecekan operator digunakan switch case dan bukan if else karena setiap percabangan hanya mengecek 1 variable sehingga syntax switch case akan terlihat lebih rapi dibandingkan if else.

Klik untuk lanjut ke hint 4

Latihan | Home