如何停止这个for循环?
How to stop this for-loop?
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),然后它必须在我输入零之前说出所有奇数的平方的 som。例如,我键入:5903。5*5 + 9*9 = 106。因此,在我键入一个零之后,它必须停止 for 循环以进一步进行。但是现在,如果我输入 5903,它会显示 115,所以现在它仍然会额外计算 3*3。那么如何在输入零后让它停止呢?它现在不起作用,它会在我输入零后继续。有人知道有什么问题吗?也许是语法?
请更改
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);
您正在检查数字是否等于 0,但您的数字实际上是“0”
您需要将输入解析为整数,或者您可以使用双等号
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);
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),然后它必须在我输入零之前说出所有奇数的平方的 som。例如,我键入:5903。5*5 + 9*9 = 106。因此,在我键入一个零之后,它必须停止 for 循环以进一步进行。但是现在,如果我输入 5903,它会显示 115,所以现在它仍然会额外计算 3*3。那么如何在输入零后让它停止呢?它现在不起作用,它会在我输入零后继续。有人知道有什么问题吗?也许是语法?
请更改
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);
您正在检查数字是否等于 0,但您的数字实际上是“0”
您需要将输入解析为整数,或者您可以使用双等号
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);