1

谁能告诉我为什么在下面的代码中使用 do/while lop 而不是简单的 if 语句:

function prev(elem){
do {
    elem = elem.previousSibling;
} while(elem && elem.nodeType != 1);
    return elem;
}

为什么不:

function prev(elem){
if(elem && elem.nodeType != 1) {
    elem = elem.previousSibling;
    return elem;
}

使用 do/while 有优势吗?谢谢!

4

4 回答 4

3

do-while将运行一次并在语句为真时继续运行,而if-statement只会运行一次。

在这种情况下,它可能是等效的(取决于代码和数据的设置方式),但通常就是这样do-whiles使用的。

于 2012-08-18T17:40:04.580 回答
1

如果您希望某些内容不断重复直到满足某个条件,请使用doforwhile语句。如果您只想检查一次,请使用该if语句。

于 2012-08-18T17:49:45.793 回答
0

如果您使用 do while 循环,那么您的语句将至少执行一次。然后检查一个条件,如果条件不满足,则不再执行该语句。但是,如果您使用其他选项,则检查第一个条件,如果满足条件,则语句仅执行一次。否则它们甚至不会被执行一次。

于 2012-08-18T17:51:10.410 回答
0
A While or Do While statement is a continuous loop until a condition is met.  
An If, Then, Else/Else If is a simple evaluative statement rather than a loop.

这里do-while将至少运行一次,并将执行直到满足 while 条件。
但是在 中if-statement,它会先检查条件,并且只会执行一次并返回响应。

于 2012-08-18T17:55:25.503 回答