如何阻止这种for循环?

时间:2015-12-05 19:29:24

标签: javascript if-statement for-loop break

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额外。那么在我键入零后如何让它停止?它现在不起作用,它在我键入零后继续。有人知道这是什么问题吗?也许语法?

2 个答案:

答案 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);