본문 바로가기
개발언어/JAVA

Java 개발을 위한 제어문 (반복문_do~while)

by 이엘리야 2023. 8. 6.

안녕하세요.

이번 시간에는 제어문 중 반복문인 do~while문을

알아보려 합니다.

 

do~while문은 while문과 비슷하지만 한 가지 다른 점이 있습니다.

바로 무조건 1회는 실행을 한다는 점에 있습니다.

그 외에는 조건을 검사하여 반복 실행하는 반복문이라는 개념에 있어

while문과 같습니다.

 

이렇게 반복과는 무관하게 무조건 한번은 실행해야 하는 문장이

있을 경우 do~while문을 사용합니다.

 

시작하기 앞서 do~while문의 구조를 한번보겠습니다.

이렇게 do~while문이 실행되고

그 중 do{} 에서 반복 실행할 문장이 1회 실행됩니다.

그 후 while() 조건에 만족했을 때 다시한번 do{} 안에

반복 실행될 문장이 반복되고 조건이 거짓이 될때까지 돌아가게 됩니다.

 

말로하기 보단 직접 예제를 보겠습니다.

이런 식으로 메뉴판과 같은 선택지가 있는 항목이 있을 경우

무조건 한 번은 실행되어 보여줘야 되기 때문에

do~while문을 사용하게 됩니다.

int menuNo라는 변수값을 선언하고

그 입력값을 do 문 안에서 한번 쓰게 된다면

첫 출력을 실행시켜 줬고

조건에 0이 아닐 경우 while문을 반복하겠다는 조건식을

걸어줬기 때문에 아래와 같은 결과가 나오는 것을 볼 수 있습니다.

이렇게 1 / 2 / 3을 입력했을 때는 0이 아니기 때문에

while문을 반복하고 마지막에 0을 입력했을 때는

거짓이라는 조건이 성립되어 그 즉시 while문을 빠져나오게 됩니다.

 

while 문도 똑같지 않겠냐는 말이 있을 수 있어 예를 들어보겠습니다

같은 조건에 do를 빼고 while문으로 작성해 보았습니다.

처음에 int menuNo를 0으로 초기화시켰죠?

결과 값을 보겠습니다.

아무것도 입력하지 않았는데도 불구하고

메뉴판이 종료되어 버린 걸 볼 수 있습니다.

 

이경우 처음부터 조건에 성립되지 않아 while문 자체가 실행되지 않기 때문입니다.

그렇기 때문에 꼭 보여줘야 하는 메시지가 있을 때는 do~while문을 사용한다는 점

잊지 마시고 이 do ~ while문을 사용하여 어떤 메뉴를 골랐는지

얼마나 실행시켰는지 카운트하여 찍어주는 코드를 짜보고 마무리하도록 하겠습니다.

위 코드에 대해서 위에서부터 아래로 설명하도록 하겠습니다.

처음으로 메뉴번호를 입력하기 위해 menuNo라는 변수명을 만들고 0으로 초기화시켜주고

몇 번 실행했는지 알아보기 위해 count라는 변수면을 만들어 0으로 초기화시켜주고

해당 메뉴명을 담기 위한 String 변수를 만들어 빈값으로 초기화를 시켜주었습니다.

 

그 후 do ~ while문으로 최초 1번 메뉴판을 등장시켜주었으며

sc.nextInt(); 로 메뉴번호를 입력받습니다

그 후 0번이면 아래 출력을 모두 무시할 수 있게 메뉴번호가 0일 경우 바로 와일문을 빠져나갈 수 있게

break를 걸어주었으며 0이 아닐 경우에는

switch문으로 해당 메뉴명을 스트링 변수명에 입력시켜 주고

if문으로 1 ~ 3 이외의 숫자가 아닌지 유효성을 검사하여 아래

출력문을 실행함과 과 동시에 카운트 수를 하나 증가하며

0을 제외한 3 초과의 숫자가 입력되었을 경우에는

"메뉴판에 없습니다"라는 문자를 출력하여

첫 와일문이 동작하였고 

그 후 2번 3번을 입력하고 마지막 0을 입력했을 때

반복문이 멈추면서 총 카운트수와 "메뉴판을 종료합니다"라는 문자를 출력하게 됩니다.

결과를 보게 되면

이런 식으로 처음에 계획했던 프로그램이 정상적으로 구동되는 것을

확인할 수 있습니다.

 

이렇게 do~while문을 알아보았는데요.

더 궁금하신 게 있으시면 댓글로 남겨주세요!

 

다음 포스팅은 반복문인 for문에 대해 알아보도록 하겠습니다.

 

감사합니다.