[kr-dev] 반복적인 동작을 위한 whale? while! - Java(7)
오늘은 어제 작성한 포스팅 내용인
for문의 형제꼴 while을 준비해 보았습니다.
사실 for문은 while의 부족한 단점을
보완하기 위해 나온 명령어로
while이 for문보다도
먼저 나온 명령어라고 합니다.
그럼 바로 while문에 대해서 알아보도록 하겠습니다.
while의 형태와 사용법은 for문과 비슷합니다.
while(조건식) {
실행할 코드;
}
이며,
for문과 마찬가지로 외부의 변수를
사용할 수 있습니다.
위 코드를 살펴보면
외부에 i라는 이름을 가진 변수를
선언해주었습니다.
while은 외부에 선언된 i가
10보다 작을때까지 블록안의
코드를 실행하라는 의미입니다.
당연히 i가 10보다 작으므로
블록안의 내용이 실행되고
1.i에 증감식 ++을 이용하여 1을 증가
2.메세지 출력
의 단계를 10번 반복하게 되는 것입니다.
while문도 for문과 마찬가지로
조건식이 true일때만 블록안의 내용을
실행합니다.
그렇다면 조건식이 true일때는 어떨까요?
위의 사진처럼 무한 루프가 일어납니다.
조건식이 true일때 블록의 내용이 실행되는데
조건식이 계속 true이기 때문이지요 :)
하지만 지난번 switch/case에서 정리한
보조 제어문(break)를 이용하면
이렇게 빠져나올 수도 있습니다.
출력문 다음에 break를 수행하며
다시 조건식이 아닌 명령문 밖으로
나와버리기 때문입니다 :)
그럼 당연히 다른 보조 제어문인
continue도 적용이 가능하겠죠?
위의 사진을 보시면
if문의 조건식이 성립되어 continue가
실행되고
continue로 인하여
다음의 실행코드인 출력문이 실행되지 않고
다시 while문의 조건식으로 돌아가는 것을
보실 수 있습니다.
while문 이외에도
do~while이라는 제어문이 존재합니다.
do의 내용을 선실행하고
while의 조건식이 충족되었을 때
다시 do의 내용으로 돌아가
코드를 실행시키는 방식이지요
사진을 보시면
do 블록안의 내용이 선 실행됩니다.
따라서 결과값으로 출력문이 1개 실행되고
i가 1증가하겠네요.
다음은 while의 조건식입니다.
do~while문 밖에 정수형 i를 0으로
초기화해주었고 do 블록안의
내용으로 1이 증가되었지만
조건식 i<2를 충족합니다.
따라서, 다시 do로 돌아가
do블록안의 내용을 실행합니다.
다시 문장이 출력되고
i는 1이 증가되어 2가 되겠네요 :)
다시 while의 조건 판별이 일어납니다.
하지만 i<2를 충족하지 못하여
프로그램이 종료되버리네요 :(
오늘은 while과 do~while에 대해서
다뤄보았는데요
현업에서는 for문과 while, do~while을
상황에 따라 적절히 사용한다고 하는데
아직 저는 개발을 배우는 입장이라
적재적소하는 방법은 잘 모르겠네요 :)
현재까지는 반복 실행할 코드가 있다면
for를 선호해서 사용합니다.
물론 간단한 조건이면 while을 사용하고 있습니다.
for와 while을 적절하게 섞어쓸 수 있을 때까지
개발은 계속됩니다 ! ~