如果我输入一个数字,每当我输入字符串" end"它应该在不执行代码的情况下退出while循环。
但如果我进入"结束"我得到了总数:NaN结束了,为什么?
我希望得到我输入的数字总数。
var i = 1;
var totale = 0;
var index = Array();
var domanda = 0;
while (!isNaN(domanda)) {
domanda = prompt("Write a number, the total so far is: " + totale);
index[i] = Number(domanda);
totale += index[i];
i++;
}
document.writeln("total: " + totale);
document.writeln("ended");
答案 0 :(得分:0)
输入后立即检查NaN。
var i=1;
var totale = 0;
var index = Array();
var domanda = 0;
while (true) {
domanda = prompt("Write a number, the total so far is: "+totale);
if(isNaN(domanda)) {
break;
}
index[i]=Number(domanda);
totale += index[i];
i++;
}
document.writeln("total: " + totale);
document.writeln("ended");
答案 1 :(得分:0)
您的while
循环会检查domanda
是否不是数字。 然后,您让用户输入domanda
的新值,该值可能是 end 。 然后,您将该值添加到总计中 - 如果total
不是数字,则domanda
不是数字。
您的while
循环只能在以while
开头的行中停止。如果条件在循环体中的某处发生变化,那么在下次检查循环条件之前,该迭代仍将完全执行,并且循环将被中止。
在此处更改此设置的一种简单方法是在 domanda
更改后再添加一个检查:
while (!isNaN(domanda)) {
domanda = prompt("Write a number, the total so far is: "+totale);
if (isNaN(domanda)) {
break;
}
...