do {
function calculator() {
function add(a, b) {
return a + b;
}
function sub(a, b) {
return a - b;
}
function mul(a, b) {
return a * b;
}
function div(a, b) {
return a / b;
}
var operand1 = prompt("Введите первое число: ");
var sign = prompt("Введите знак арифметической операции: + - * /");
var operand2 = prompt("Введите второе число: ");
var result;
operand1 = parseInt(operand1);
operand2 = parseInt(operand2);
switch (sign) {
case "+":
result = add(operand1, operand2);
break;
case "-":
result = sub(operand1, operand2);
break;
case "*":
result = mul(operand1, operand2);
break;
case "/":
result = div(operand1, operand2);
break;
default:
document.write("<p><b style='color:red'>" + sign + "</b> - не является знаком арифметической операции.");
}
document.write("<p>" + operand1 + " " + sign + " " + operand2 + " = " + result);
}
setTimeout(calculator, 5000);
} while (calculator);
while (calculator)
который никогда не станет false, и он будет жрать процессор беспрерывно. Кроме того, он нигде не получает пользовательский ввод. Т.е. не слушает какие кнопки нажаты и не читает никакой текст. Он просто очень быстро повторяется и забивает память новыми калькуляторами (из-за setTimeout в каждом цикле).