Java - do while과 while의 차이점

자바에서 반복문 중에 whiledo while이 있습니다. 둘다 어떤 코드를 반복적으로 수행하는 것인데, 약간의 차이점이 있습니다. 각각 어떻게 동작하는지 확인하고 차이점에 대해서 알아보겠습니다.

1. while 반복문

while문은 먼저 반복 조건을 확인하고, 조건이 충족한다면(true) 코드(statement)를 수행합니다. 그리고 다시 반복 조건을 확인하고 조건이 충족하면 코드 수행을 반복하고 충족하지 않으면(false) 반복문에서 빠져나옵니다.

while loop

아래와 같은 형식으로 while 반복문을 구현할 수 있습니다.

while (condition) {
  statement
}

아래 예제는 while을 사용하여 5까지 카운트하는 예제입니다.

public class Example {

    public static void main(String[] args) {

        int count = 0;
        while (count < 5) {
            System.out.println("Count : " + count);
            count++;
        }
    }
}

Output:

Count : 0
Count : 1
Count : 2
Count : 3
Count : 4

2. do while 반복문

do while 반복문은 while과 다르게 반복 조건을 먼저 체크하지 않습니다. 코드(statement)를 먼저 실행하고 그 다음에 반복하기 전에 반복 조건을 체크합니다. 반복 조건을 충족(true)하면 반복하고 그렇지 않으면(false) 반복문을 빠져나옵니다.

do while loop

아래와 같은 형식으로 do while 반복문을 구현할 수 있습니다.

do {
    statement
} while (condition);

아래 예제는 do while을 사용하여 5까지 카운트하는 예제입니다.

public class Example {

    public static void main(String[] args) {

        int count = 0;
        do {
            System.out.println("Count : " + count);
            count++;
        } while (count < 5);
    }
}

Output:

Count : 0
Count : 1
Count : 2
Count : 3
Count : 4

3. while과 do while의 차이점

while과 do while의 차이점은, do while의 경우 처음에 반복 조건을 충족하지 못해도 코드를 한번 실행할 수 있다는 것입니다.

반면에 while은 처음에 반복 조건이 충족하지 않으면 어떤 코드도 실행하지 않고 반복문을 빠져나옵니다.

아래 예제는 do while을 사용한 코드입니다. 조건을 보면 count < 0은 false가 되지만 코드는 한번 실행됩니다. 그리고 반복 조건을 체크하는데 조건이 충족되지 않아 다시 반복하지 않고 반복문을 빠져나옵니다.

public class Example {

    public static void main(String[] args) {

        int count = 0;
        do {
            System.out.println("Count : " + count);
            count++;
        } while (count < 0);
    }
}

Output:

Count : 0

아래 예제는 조건은 count < 0로 같지만 while을 사용하는 예제입니다. 처음부터 반복 조건이 false이기 때문에 어떤 코드도 수행하지 않고 바로 반복문을 빠져나옵니다. 결과를 보면 아무것도 출력되지 않습니다.

public class Example {

    public static void main(String[] args) {

        int count = 0;
        while (count < 0) {
            System.out.println("Count : " + count);
            count++;
        }
    }
}

Output:

Loading script...
codechachaCopyright ©2019 codechacha