我正在尝试在我的基础类中重新创建一个简单的项目到javascript(来自C ++)但是每次for循环运行时sum都不会添加。所有其他部分都可以,但总和只是按照我把它们放入的顺序列出数字。感谢任何帮助
var num = prompt("Please enter an integer");
var lrg = num;
var sml = num;
var avg = num;
var sum = num;
var cnt = 10;
function runMath () {
for (i = 1; i < 10; i++) {
var num = prompt("Please enter an integer");
if (num > lrg) {
lrg = num;
} else {
lrg = lrg;
}
if (num < sml) {
sml = num;
} else {
sml = sml;
}
sum += num;
}
}
runMath();
avg = sum/cnt;
答案 0 :(得分:1)
问题是parseInt("33")
返回一个String,而你期望一个数字。您可以通过几种不同的方式将其转换为数字:
33
将返回"33"
,而不是+prompt("33")
同样,速记看起来像:
33
将返回"33"
,而不是NOW() - INTERVAL 1 WEEK
答案 1 :(得分:0)
所有输入来自prompt()
命令是一个字符串。您可以使用parseInt()
将其转换为整数,但是用户可以输入除数字之外的其他内容,因此您需要检查它是否isNaN()
(不是数字),并以不同方式处理它如果是的话。
var num = prompt("Please enter an integer");
num = parseInt(num, 10)
if (isNaN(num)) {
alert ("That's not a number")
num = 0 // or do something else
}
警告:typeof NaN
将返回&#34;数字&#34;,因此您无法将其作为测试(请参阅NaN)
+
中+prompt
的解释:Unary plus (+)