我正在尝试解决一个小程序(平均音符),该程序通过提示数字来请求。我希望如果输入的不是数字,则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));
我希望程序每次都不会(通过提示符)询问一个数字。
答案 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));