簡體   English   中英

在哪種情況下,我應該在JavaScript中使用“ while循環”代替“ for循環”?

[英]In which situations should I use 'while loops' instead' for loops' in JavaScript?

當時我一直很困惑,只能在for和while循環之間進行選擇。 在哪種情況下,我應該在JavaScript中使用“ while循環”代替“ for循環”? 這有什么不同嗎?

就“有效”而言,它們是可互換的。

根據最佳實踐和約定,for循環用於已知的迭代次數,而while循環要執行到完成其預期的工作為止。

循環控制結構中可能有三件事:在循環之前執行的操作(例如將循環變量設置為零),在循環的每次迭代中執行的操作(例如遞增循環變量),以及執行的操作告訴您是否已完成循環(例如將loop變量與某些內容進行比較)。 如果你有三個,他們是所有簡單,使用for 如果只有條件來告知您是否已完成循環,請使用while

For循環非常適合一次又一次地執行相同的任務, 因為您提前知道必須重復幾次

另一方面, 雖然循環是必須循環的理想選擇,但您不提前知道需要循環多少次

舉例來說,您想繼續從牌組中選擇撲克牌,直到拿到黑桃為止。 您不知道需要選擇多少張卡,因此for循環將不起作用。 在這種情況下,您事先不知道何時停止循環,我們可以使用while循環。

禮貌: codecademy.com

(由於過於主觀,這將很快關閉,或者轉移到另一個論壇,但是無論如何...)

顯然,任何for循環都可以使用“ while”輕松地重寫。 但鑒於以下語法:

for ([initialization]; [condition]; [final-expression])

for循環所使用的方法顯然非常適合某些簡單的初始化和簡單的迭代結束更新或計數器增量的情況。 將所有循環控制邏輯放在循環的開始語句中,可以一目了然地看出是什么使循環滴答作響。

使用while循環時,迭代結束處理通常必須在循環主體的底部進行,因此很難一眼就看出該循環是如何工作的,但這也更適合於您必須執行許多計算以確定是否繼續循環。

當然,您可以使用逗號分隔for循環初始化或final表達式中的多個語句,但是如果這比i++, j++, k--復雜得多i++, j++, k--那么對於我來說i++, j++, k--它很快就會變得太混亂了,而while循環會成為更好的選擇。

暫無
暫無

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

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