0

我今天在 javascript 中浏览一段代码,突然遇到了有这段代码片段的情况。

add: function (value) {
    var current = null;
    if (this._root === null) {
        this._root = node;
    } else {
        current = this._root;

        while (true) {
            // Some code goes here.
        }
    }
}

条件while(true)总是正确的。它没有让我想到为什么将条件放在此处。

4

3 回答 3

1

while(true)

将永远执行,无限循环内部必须有一些逻辑才能终止。

至于为什么?,这是显示无限循环的一种非常常见的方式,紧随其后的是

for(;;){}
于 2013-05-04T23:43:56.787 回答
1

while 语句将无休止地执行循环中的代码,除非您有内部调用breakreturn终止循环的逻辑。

例子

if (value == "done")
   break;

或者

if (value == "done")
    return;
于 2013-05-04T23:44:21.260 回答
1

在我看来,这是一个非常糟糕的做法。
您应该始终将条件绑定到条件循环中的布尔变量。这仅仅是因为如果您使用变量,它的值可以在以后更改。据我所知,这看起来像是一个无限循环。
但是,如果您仔细查看该循环内的代码,您可能会发现一些条件,一个 if 语句可能使用 break 语句来跳出该无限循环。

于 2013-05-04T23:46:24.100 回答