# do\~while 구문

## do \~ while 구문

do \~ while 구문 역시 반복문의 한 종류이며, while 구문과 유사하지만 약간의 차이점이 존재한다.

### 형태

```java
do {
    실행코드
}
while(조건식);
```

### 실행 순서

<div align="left"><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M_TNZwLuHV9ipYLbvRq%2F-MeNaDP7vA5_8wzh4isD%2F-MeNaV6swBZViFoFizxr%2Fimage.png?alt=media&#x26;token=0d23e96b-0f73-4af2-97df-632c0db913e2" alt=""></div>

do 구문이 먼저 실행된 뒤 while 조건을 검사하여 추가 실행 여부를 검사하는 형태이다.\
한 번은 반드시 실행을 시켜봐야 하는 경우에 사용한다.

### 데모 1 : 올바른 점수 입력 받기

```java
import java.lang.*;
import java.util.*;

public class DoWhileExample01 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int score;
        do {
            System.out.println("점수 입력");
            score = sc.nextInt();
        }
        while(score < 0 || score > 100);
        
        System.out.println("입력한 점수  : "+score);
        
        sc.close();
    }
}
```

사용자가 0부터 100 사이의 값을 입력할 때까지 지속적으로 입력을 받는 프로그램 코드이다. `do`에서 점수를 한 번 입력받고, 해당 점수가 범위를 벗어난다면 다시 실행하도록 `while` 조건이 구성되어 있다.

주의할 점은, score는 do와 while구문에서 모두 사용해야 하기 때문에 반드시 구문 밖에 선언해야 하며, while 조건 뒤에는 반드시 세미콜론을 작성해야 한다. 이러한 번거로움 때문에 do\~while 구문을 선호하지 않는 경향이 생기며, 사용 빈도가 감소하고 있다.
