본문 바로가기
Dev/Java

02.while / do-while

by YoonYeoJin 2023. 7. 12.

자바를 배우면서 반복문을 쓸 일이 참 많았었다.

반복문 중에서 for, while을 많이 썼었지만,

do-while문도 있었는데 사실 프로젝트를 하거나 그 외 코딩테스트 연습을 하는데서도 사용하지는 않았었다.

그렇지만 복습을 하는 중에서 do-while문을 기억해보려했는데

기억이 잘 나지 않았으므로

2번째는 while과 do-while을 비교해보면서 do-while의 개념을 다시 잡아보도록 하겠다.

 

1. while

while문을 간단하게 생각하면 조건을 만족하는 동안 실행할 코드를 반복하는 것이다.

코드로 간단하게 표현하면

while문의 표현식

으로 나타낼 수 있는데 이를 이용해서 간단하게 1부터 5까지 출력하는 코드를 작성해보고 결과를 확인해보면 

다음과 같이 나타나는 것을 알 수 있다. 저기서 i++과 같이 후위연산식을 같이 작성해주지 않으면 i 값은 1로 유지되기 때문에 1이 계속해서 출력될 것이다. 마치 for문의 조건식(int i = 1; i <= 5; i++)에서 i++이 없는 것처럼 무한 반복이 된다는 소리다.

 

while은 간단하게 생각해서 while(조건식)이 만족되는 동안 돌아가는 표현문이라고 생각할 수 있다.

 

2. do-while

그렇다면 while문과 달리 do-while문은 어떤 차이가 있을까?

do-while의 표현식이다.

결론부터 말하자면 기존에 사용하던 반복문인 for문과 while문과 달리 조건식이 처음부터 거짓일지라도 do-while문은 최초에 한번은 무조건 실행이 된다는 것이 큰 차이점이다.

 

while문에서 사용했던 12345를 출력하는 코드를 do-while문을 사용해서 다시 작성해보면 

결론적으로 while문과 같은 결과가 출력이 되게 된다.

그럼 여기서 while문과 차이인 무조건 한번 수행된다는 의미는 무엇일까?

코드를 살짝 바꿔보았다.

 

최초에 선언한 변수 i가 기존 i = 1로 초기화가 되있고, 조건식은 i가 0일때 실행되도록 코드를 바꿔보았다.

그 결과 1만 출력되는 것을 확인할 수 있는데

결론적으로 조건이 일치하지 않아도 무조건 한번이 실행된다는 것이다.

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

05-1. 다양한 함수(Math.random)  (1) 2023.07.25
04-2.ArrayCopy(깊은 복사)  (0) 2023.07.17
04-1.ArrayCopy (얕은 복사)  (0) 2023.07.17
03. continue  (0) 2023.07.12
01.Scanner  (0) 2023.07.09