Latihan 1 - Hint 3
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.