开发者

The do-while statement [duplicate]

开发者 https://www.devze.com 2023-02-22 21:47 出处:网络
This question already has answers here: Closed 11 years ago. Possible Duplicate: When is a do-while appropriate?
This question already has answers here: Closed 11 years ago.

Possible Duplicate:

When is a do-while appropriate?

Would someone mind telling me what the difference between these two statements are and when one should be used over the other?

var counterOne = -1;

do {
    counterOne++;
    document.write(counterOne);
} while(counterOne < 10);

Or:

var counterTwo = -1;

while(counterTwo < 10) {
    counterTwo++;
    document.write(counterTwo);
}

http://fiddle.jshell.net/Shaz/g6JS4/

At this moment in time I don't see 开发者_Python百科the point of the do statement if it can just be done without specifying it inside the while statement.


Do / While VS While is a matter of when the condition is checked.

A while loop checks the condition, then executes the loop. A Do/While executes the loop and then checks the conditions.

For example, if the counterTwo variable was 10 or greater, then do/while loop would execute once, while your normal while loop would not execute the loop.


The do-while is guaranteed to run at least once. While the while loop may not run at all.


do while checks the conditional after the block is run. while checks the conditional before it is run. This is usually used in situations where the code is always run at least once.


The do statement normally ensures your code gets executed at least once (expression evaluated at the end), whilst while evaluates at the start.


Lets say you wanted to process the block inside the loop at least once, regardless of the condition.


if you would get the counterTwo value as a return value of another function, you would safe in the first case an if statement.

e.g.

var counterTwo = something.length; 

while(counterTwo > 0) {
    counterTwo--;
    document.write(something.get(counterTwo));
}

or

var counterTwo = something.length; 

if(counterTwo < 0) return;

do
{
        counterTwo--;
    document.write(something.get(counterTwo));
} while(counterTwo > 0);

the first case is useful, if you process the data in an existing array. the second case is useful, if you "gather" the data:

do
{
     a = getdata();
     list.push(a);
} while(a != "i'm the last item");
0

精彩评论

暂无评论...
验证码 换一张
取 消