簡體   English   中英

嵌套循環 var 聲明

[英]Nested loops var declaration

我想打印這個

1 2 3 4 5 
2 3 4 5 6 
3 4 5 6 7 
4 5 6 7 8 
5 6 7 8 9 

經過多次猜測,代碼看起來像這樣

var a=5;
for (var i = 1; i <= a; i++) {  
     var result="";
 for (var j = 1; j <= a; j++) {
    result +=(i+j - 1)+ " ";
   }
   console.log(result);
  }

但是我仍然不太明白為什么如果 var 結果聲明在其他地方(例如循環之外)結果完全不同。

它不是為var提升的聲明,而是每行的第一個值。

 var a = 5, result; for (var i = 1; i <= a; i++) { result = ""; for (var j = 1; j <= a; j++) { result += (i + j - 1) + " "; } console.log(result); }

可以result聲明從循環中取出,如下所示:

var a = 5, result;
for (...
...

但是您必須在每次外部循環迭代中清除它,否則每次迭代它會打印不斷增加的重復模式行。

最終代碼是:

var a = 5, result;

for (var i = 1; i <= a; i++) {
    result = ""; //Clearing happens here.
    for (var j = 1; j <= a; j++) {
        result += (i + j - 1) + " ";
    }
    console.log(result);
}

暫無
暫無

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

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