1

次のコードで、単純なifステートメントではなくdo / while lopが使用されている理由を誰かに教えてもらえますか?

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は1回実行され、ステートメントがtrueの間実行を継続しますが、はif-statement1回だけ実行されます。

この場合、それは同等である可能性があります(コードとデータの設定方法によって異なります)が、通常はそれdo-whilesが使用される方法です。

于 2012-08-18T17:40:04.580 に答える
1

特定の条件が満たされるまで何かを繰り返し続けたい場合は、、、、またはステートメントを使用doforますwhile。何かを一度だけチェックしたい場合は、ifステートメントを使用してください。

于 2012-08-18T17:49:45.793 に答える
0

do whileループを使用している場合、ステートメントは少なくとも1回実行されます。次に、条件がチェックされ、条件が満たされない場合、ステートメントは実行されなくなります。ただし、他のオプションを使用すると、最初の条件がチェックされ、条件が満たされた場合、ステートメントは1回だけ実行されます。それ以外の場合は、一度も実行されません。

于 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は少なくとも1回実行され、条件が満たされるまで実行されます。
ただし、ではif-statement、最初に条件をチェックし、1回だけ実行して、応答を返します。

于 2012-08-18T17:55:25.503 に答える