티스토리 뷰

IT/Java

do while문

오예봉봉 2020. 4. 30. 22:22

do while문 개념




"일단 한 번은 무조건 달리자" 이 것이 do while문의 가장 중요한 우선 개념입니다.

반복 조건의 참(true) 또는 거짓(false)에 따라 실행 문을 반복 실행하는 것이 do while문 입니다. 

따라서 while문과 매우 유사한 개념의 제어 문입니다.

그러나 while문과 do while문의 사이에 유일한 차이점이 있습니다.

while문과 do while문의 차이점

while문은 반복 조건을 먼저 검사한 후에 반복 실행을 결정합니다.

그러나 do while문은 먼저 일단 1회 반복 영역을 실행한 후에 반복 조건을 검사합니다.

아래 예제를 봅시다.

예제 1(while문)

1.class Exam

2.{

3. public static void main(String[ ] args)

4. {

5. int number=0; //변수 number 선언과 초기화를 한다.

6.

7. while(number<5) //반복 조건

8. {

9.               System.out.println("Hello World " + number); //반복 영역

10.

11. number++; // 반복 영역

12.          }

13. }

14. }


예제 1은 while문의 예제입니다. 

이것을 그대로 do while문으로 바꾼 것이 아래 예제 2 입니다.

예제 2(do while문)

1.class Example

2. {

3.     public static void main(String[ ] args)

4. {

5. int number=0 ;  //변수 number 룰 선언하고 초기화 한다.

6.

7. do 

8. {

9. System.out.println("Hello World " + number) ; //반복 영역

10. number++ ;                                           //반복 영역

11. }while(number<5) ; //while문과 달리 세미 콜론 붙여야 한다.

12. }

13. }


위의 do while문 예제에서 반복이 될 영역은 9행과 10행입니다.

반복을 위한 조건은 11행의 (number < 5) 입니다. 

do while문도 반복이 무한히 계속 되어 무한 루프에 빠지지 않도록 하기 위하여 10행과 같은 연산이

있어야 합니다. 

그리고 do while문은 11행에서 보이는 것처럼 while뒤에 세미 콜론을 붙여야 합니다.

while문의 경우 예제 1의 7행에서 보듯이 반복 조건을 먼저 검사합니다.

그러나 do while문의 경우 예제 2의 11행처럼 반복 조건이 마지막에 명시 되어 있습니다.

따라서 while문과 다르게 do while문은 다음의 순서로 진행이 됩니다.


1.반복 영역을 무조건 1회 우선 실행한다.

2.반복 조건을 검사한다.

3.참이면 반복 영역을 실행한다.

4.거짓이 될 때까지 위의 절차를 반복한다.


따라서 do while문의 특징은 다음과 같습니다.

첫째 , 반복 영역을 먼저 1회 실행하기 때문에 반복 조건을 충족하지 않아도 실행이 최소 1번은 수행된다.

둘째 , while문과 달리 반복 영역을 우선 실행한 후에 반복 조건을 검사한다.


예제 3

1. do
2. {
3.    System.out.println ( “Happy Life ”) ;
4.    number++ ;
5. } while(number < 3 ) ; // 세미 콜론을 반드시 붙여야 한다.


위 예제에서 number가 만약 4라면 5행의 while의 조건 식을 처음부터 만족 시키지 못합니다.

그럼에도 불구하고 1회는 무조건 실행하기 때문에 Happy Life를 반드시 한번은 출력하게 됩니다.


'IT > Java' 카테고리의 다른 글

break문  (0) 2020.05.06
for문  (0) 2020.05.03
while문  (0) 2020.04.28
반복문 소개  (0) 2020.04.28
switch case문  (0) 2020.04.26