我无法重新分配提示结果

时间:2019-03-31 17:21:45

标签: javascript

我正在尝试解决一个小程序(平均音符),该程序通过提示数字来请求。我希望如果输入的不是数字,则alert命令显示需要输入数字。

如果检查代码,则提示输入使用Number()将字符串转换为数字。但是,如果我输入一些字符串,结果将是NaN,并且我试图在while循环中重新分配note变量,但是出了点问题,因为程序继续执行其余代码。

let subjects = Number(prompt('Type quantity of subjects: '));
let sum = 0;

while (isNaN(subjects)) {

  alert('Type a number');
  subjects = Number(prompt('Type quantity of subjects: '));

}

for (i = 1; i <= notes; i++) {
  note = Number(prompt('Type note of subject' + i + ': '));
  sum += note;
}
average = sum / subjects;

alert(average.toFixed(2));

我希望程序每次都不会(通过提示符)询问一个数字。

1 个答案:

答案 0 :(得分:0)

在您的代码notes中是undefined,用于for循环中。我认为subjects应该在那儿。并将note转换为Number。并使用Unary Plus +。用于将字符串转换为数字。它更快。

let subjects = +prompt('Type quantity of subjects: ');
let sum = 0;

while (isNaN(subjects)) {
  alert('Type a number');
  subjects = +prompt('Type quantity of subjects: ');
}

for (let i = 1; i <= subjects; i++) {
  note = +prompt('Type note of subject' + i + ': ');
  sum += +note;
}
average = sum / subjects;

alert(average.toFixed(2));