var number = prompt("Typ some numbers:")
var som = 0
for (var x = 0; x < number.length; x++) {
if (!(number[x] === 0)) {
if ((number[x] % 2) === 1) {
som += (number[x] * number[x])
}
} else {
break;
}
}
alert(som)
我想输入一些随机数(0-9),然后在我输入零之前必须说出所有奇数的平方的索姆。例如,我输入:5903。5 * 5 + 9 * 9 = 106.因此,在输入零之后,它必须停止进一步的for循环。但是现在,如果我说5903它说115,所以现在它仍然需要3 * 3额外。那么在我键入零后如何让它停止?它现在不起作用,它在我键入零后继续。有人知道这是什么问题吗?也许语法?
答案 0 :(得分:1)
请更改
if (!(number[x] === 0)) {
到
if (number[x] !== '0') {
因为你正在比较字符串。
工作示例:
var number = prompt("Typ some numbers:"),
som = 0;
for (var x = 0; x < number.length; x++) {
if (number[x] !== '0') {
if ((number[x] % 2) === 1) {
som += (number[x] * number[x]);
}
} else {
break;
}
}
alert(som);
答案 1 :(得分:0)
您正在检查该号码是否等于0,但您的号码实际上是“0”
您需要将输入解析为整数,或者您可以使用double equals
var number = prompt("Typ some numbers:");
var som = 0;
for (var x = 0; x < number.length; x++){
if(number[x] == 0){
break;
}
if ((number[x] % 2) === 1) {
som += (number[x] * number[x]);
}
}
alert(som);