2016-08-17 69 views
0

我對JavaScript循環類型感到困惑。Javascript循環

for循環

我得知這個循環循環直到條件不是假。如果第一次嘗試失敗,它將永遠不會運行。

for (var i = 0; i < 9; i++) { 
    console.log(i); 
} 

,直到條件不假它運行循環。如果第一次嘗試失敗,則循環從不開始。

var n = 8; 

while (n < 9) { 
    n++; 
    console.log(n) 
} 

但i是8且n所得到9個

問題:

  • 在for循環條件爲真甚至若設爲i = 8 - 8是小於9,以便循環應該增加我在第9號。

  • 這兩個循環的描述幾乎是相同的他們之間的區別是什麼?

+4

注意'++'設置遞增值_after_反映當前值,所以當for循環條件運行時,'i'仍然是8,但是當它到達循環體時,它是9.在你的_while_循環,如果你記錄了'n ++'而不是之前的步驟,你會看到與條件相同的值。 – dandavis

+0

爲了使它們相等,'n ++'必須在'console.log'之後移動。顯然,'n'應該從0開始,讓它們以相同的值開始。 – trincot

回答

0

https://www.codecademy.com/en/forum_questions/510e3c1a3011b8fa25005255

For循環讓你通過循環,當你知道你想要多少 時候,它通過運行問題,如for (var i; i < 10; i++);這會持續增加,直到我跑那條件 返回false,任何數字都可以代替10甚至一個變量。但一旦條件不再滿足,它將退出 。最好再次使用 進行循環,以瞭解應該何時停止的循環。

While循環允許你在你放什麼在裏面, 多一點的flexability以及何時會停止,如while (i < 10)你也可以substitue 在10布爾(真/假)以及許多其他類型的 varibles。

兩者之間的主要區別在於它們之間的組織,如果 你要提高到10這將會是很多更清潔,更 可讀性使用的語句,但在另一方面,如果你要 在你的循環參數中使用你程序中的一個現有變量,它會更清潔,只需一個while循環。在For循環中,您必須創建一個新的變量,這對於While循環來說並不正確。

+1

請參閱[本文](https://www.codecademy.com/en/forum_questions/510e3c1a3011b8fa25005255) – ASDFGerte

+0

最後一個陳述並不完全正確 - 例如'for(;;)'和'while(i = 5)'是有效循環;) – eithed

1

你看到一個區別,因爲for循環的最後表達每次迭代後運行。

這意味着下面的代碼是相同的:

for (var /* VariableDeclarationList */; /* Expression 1 */; /* Expression 2 */) { 
    /* StatementList */ 
} 
var /* VariableDeclarationList */; 
while (/* Expression 1 */) { 
    /* StatementList */ 
    /* Expression 2 */ 
} 

但轉型爲while循環時,你放在表達n++的語句之前。