我今天在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)
总是正确的。它没有进入我的脑海,为什么条件放在这里。
答案 0 :(得分:1)
while(true)
将永远执行,无限while循环中必须有 内的逻辑才能终止。
至于为什么?,这是显示无限循环的一种非常常见的方式,紧随其后
for(;;){}
答案 1 :(得分:1)
while语句将循环执行循环中的代码,除非你有内部逻辑调用break
或return
来终止循环。
示例强>
if (value == "done")
break;
或
if (value == "done")
return;
答案 2 :(得分:1)
在我看来,这是一个非常糟糕的做法。
您应始终将条件绑定到条件循环中的布尔变量。这只是因为如果你使用变量,它的值可以在以后改变。从我所看到的,这看起来像一个无限循环。
但是,如果你仔细观察该循环中的代码,你可能会发现一些条件,一个if语句或许使用break语句来突破那个无限循环循环。