簡體   English   中英

如何停止此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),然后在輸入零之前必須說所有奇數的平方的平方。 例如,我鍵入: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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM