views:

164

answers:

5

I saw this bit of code on the interents somewhere. I'm wondering what the do is for.

public class LoopControl {
    public static void main(String[] args) {
        int count = 0;

        do {
            if (count % 2 == 0) {
                for (int j = 0; j < count; j++) {
                    System.out.print(j+1);

                    if (j < count-1) {
                        System.out.print(", ");
                    }
                }

                System.out.println();
            }

            count++;
        }
        while (count <= 5);
    }
}

By which I mean what exactly does do mean? What's its function? Any other information would be useful, too.

A: 

It goes with the while. do { ... } while() is a loop that has the conditon in the end.

Serafeim
+2  A: 

It's a while loop that gets executed at least once.

Edit: The while and do-while Statements

kloffy
+6  A: 

It is a do-while loop. So it will do everything in the following block while count is less than or equal to 5. The difference between this and a normal while loop is that the condition is evaluated at the end of the loop not the start. So the loop is guarenteed to execute at least once.

Sun tutorial on while and do-while.

Oh, and in this case it will print:

1, 2
1, 2, 3, 4

Edit: just so you know there will also be a new line at the start, but the formatting doesn't seem to let me show that.

DaveJohnston
+3  A: 

It is similar to a while loop, with the only difference being that it is executed at least once.

Why? Because the while condition is only evaluated after the do block.

Why is it useful? Consider, for example, a game menu. First, you want to show the menu (the do block), and then, you want to keep showing the menu until someone chooses the exit option, which would be the while stop condition.

JG
+1  A: 

do { ... } while(CONDITION) ensures that the block inside do will be executed at least once even if the condition is not satisfied, on the other hand a while statment will never execute if the condition is not met

Yassir