JavaScript 中的 While 循环与 For 循环? [关闭]
Posted
技术标签:
【中文标题】JavaScript 中的 While 循环与 For 循环? [关闭]【英文标题】:While Loops vs. For Loops in JavaScript? [closed] 【发布时间】:2017-02-19 12:24:07 【问题描述】:使用while
循环而不是for
循环有什么好处?当我遍历数组时,我总是使用for
循环,所以我想知道我是否在这里遗漏了什么。
我从来没有遇到过for
循环不起作用的情况,但我担心我可能会在这里养成坏习惯。我对循环的使用涉及网页上的元素、动画中的内容等。
【问题讨论】:
【参考方案1】:这些是我会选择其中一个的原因:
for循环语法:
for( int i = 0; i > 10; i++)
//Some code here
我会使用 for 循环,因为我可能知道我需要执行的迭代次数,而且我有一个 INCREMENTING 变量,它有时会很方便。
While-loop 语法:
while(!done)
//Some code goes here
当我不确定我可能需要执行多少次迭代时,我会使用此循环。示例:等待用户输入正确的输入值并继续循环,直到他/她输入正确的值。
Do-While 循环语法:
do
//Some code here
while(!done);
这个循环与 while 循环几乎相同,但当我需要完成至少一次的事情时,我更喜欢这个循环,然后我开始验证它会让我想要循环并再次执行该代码。示例:第一次询问用户输入,然后验证它。如果输入错误,则循环返回并再次请求输入
【讨论】:
我知道这篇文章已经过时了,我觉得我必须这样做。 for 循环也可以像 while 循环一样使用,exp:for(;!done;) // do stuff
for 循环是多用途的,与 while 循环相比,在大多数情况下更好,就性能而言,它们也往往更快(但这不是适用于 js),而循环是仅在绝对必要时才应使用的类型,许多程序员倾向于在整个脚本中使用它们。我的建议是坚持使用for
和do-while
循环,只有在遇到其他两个无法使用的情况时才使用while
循环。
只想说 setInterval() 和 clearInterval() 是我用来等待用户输入的。通过这种方式,您可以控制循环的速度,而不是控制循环不受限制和全速运行。我可以使用这种方式描述的while循环来迭代通过改变数组来构建一个字符串,以便在while循环中有一个明确的而不是那么突出的结束。【参考方案2】:
从功能上讲,一个人可以在任何情况下替代另一个人。这个比那个好吗?不在 javascript(您已标记)中,因为它不是编译语言。
但是在像 C++ 这样的语言中,for 循环通常会给编译器一个静态循环计数,编译器可以使用它来优化二进制文件。所以它应该运行得更快(在非常大的循环数上)。
在当今时代,您甚至不会注意到在 2.5 ghz 四核 CPU 上运行 10000 次迭代的循环的性能提升。
但是,就我个人而言,美学对我来说很重要(如果您对编码艺术很认真,那么它对您也很重要)。例如,当您处理外部条件时(您要检查的变量是在循环外部定义的),请使用 while 循环。它只是在语义上如此美丽。此外,while 循环应该是无限循环的事实上的选择(不过,我看不出为什么你会在 javascript 中使用无限循环)。
简而言之,遵循语法。你只是检查一个条件吗?使用while循环。您是否在循环上下文中初始化和递增/递减某些内容以及检查条件?只有这样才能使用 for 循环。
【讨论】:
我喜欢最后一句话。 “不过,我看不出为什么你会在 javascript 中出现无限循环。”当您使用二叉树、四叉树或八叉树数据结构时,您将需要它。 无限循环在处理元素数量不断变化的数组时很有用,当您获得正确类型的响应或数组为空时,您可以break
循环。例如:如果您使用 value += array.shift();
并在 value
中等待模式【参考方案3】:
您始终可以使用 任一 循环。但是,for
循环最常见的用法是当迭代次数已知,而while
循环的迭代次数不确定或将取决于特定条件。例如:
var arr = ["a", "b", "c"];
for (let i=0; i<arr.length; i++) // will loop 3 times (length of arr = 3)
// do something
var x = "Hello";
while (x != "World")
// do something
if (some_condition)
// do something
else x = "World";
【讨论】:
以上是关于JavaScript 中的 While 循环与 For 循环? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
python中的while循环与for循环怎么样那个比较好用?
如何将在JavaScript中保存为数组的数字与while循环相加
javascript中while循环do....while与for循环的用法和区别
javascript中,while循环与for循环执行效率上的差异?