<script type="text/javascript">
var num1 = 0;
var num2 = 0;
var operator = "";
var result = document.getElementById("result");
var history = [];
function numberClick(num) {
if (result.value == "0") {
result.value = num;
} else {
result.value += num;
}
}
function operatorClick(op) {
num1 = parseFloat(result.value);
operator = op;
result.value = "0";
}
function equalClick() {
num2 = parseFloat(result.value);
var answer = 0;
switch (operator) {
case "+":
answer = num1 + num2;
break;
case "-":
answer = num1 - num2;
break;
case "*":
answer = num1 * num2;
break;
case "/":
answer = num1 / num2;
break;
}
result.value = answer;
history.push(num1 + " " + operator + " " + num2 + " = " + answer);
document.getElementById("history").innerHTML = history.join("<br>");
}
function clearClick() {
num1 = 0;
num2 = 0;
operator = "";
result.value = "0";
history = [];
document.getElementById("history").innerHTML = "";
}
document.addEventListener("keydown", keyboardInput);
function keyboardInput(event) {
event.preventDefault();
var key = event.key;
if (key >= '0' && key <= '9') {
numberClick(parseInt(key));
} else if (key === '+') {
operatorClick('+');
} else if (key === '-') {
operatorClick('-');
} else if (key === '*') {
operatorClick('*');
} else if (key === '/') {
operatorClick('/');
} else if (key === 'Enter' || key === '=') {
equalClick();
} else if (key === 'c' || key === 'C') {
clearClick();
}
}
</script>
Here after getting calculation say 1+1= 2 if we press =
again, the result is getting incremented by amount of num1 instead of staying same. Have tried using flag still the issue persist. Also have used break and set a default value still not working.
Can someone please help me with this?
Tried 2+1=3=3=3
Got 2+1=3=5=7=9 so on