Java 그게 뭐야? 9. while문
1. while문
while문
조건식이 true일 동안 {} 안의 문장을 반복
while(조건식) {
조건식의 연산결과가 참true일 동안 반복할 문장
}
while문 예제
while문과 switch문을 이용해서 퀴즈를 푸는 예제이다. while문의 조건은 2가 아닌 것을 고르는 것이다. 정답 외에 다른 번호(1, 3, 4)나 틀린 번호를 입력하면 while문의 조건식이 성립돼 계속 반복되고, 정답인 2번을 입력하면 while문이 종료된다.
do~while문
선실행 후판단
while문과 동일하지만 일단 한 번은 실행한다.(사용자에게 입력받을 때 주로 사용됨)
do {
조건식의 연산결과가 참true일 동안 반복할 문장
} while(조건식);
즉, 조건식이 false여도 일단 한 번은 do {} 안의 문장이 실행된다.
do~while문 예제
현재 choice는 0으로 초기화되어 있음. 따라서 while문 안의 조건식 choice != 0 은 false인 상태이다. 만약 그냥 while문이었다면 조건이 성립되지 않아 블록 안의 문장이 실행되지 않는다. 하지만 do~while문에서는 일단 최소 한 번은 블록 안의 문장을 실행하기 때문에 false여도 실행된다.
무한루프
while(true) {
무한 반복할 문장
}
while문의 뒤 조건식에는 boolean 타입의 값이 온다. 따라서 조건식 자리에 true라는 값을 넣을 수 있고, 이 경우 조건식이 계속 참이기 때문에 무한 반복된다.
무한루프를 탈출하기 위해선, while문 안에 if문으로 특정 조건일 때 break를 만나도록 하여 while문을 탈출할 수 있도록 만들어 줘야한다.
무한루프 예제
만약 while(true)인 상태에서 if문이 없다면, 어떤 값을 입력하든 계속 반복된다. 하지만 if문을 넣어 i가 0일 경우에 break를 만나게 하면, 사용자가 0을 입력했을 때 while문이 종료되게 된다.
for문과 while문의 차이
for문은 몇 번 반복할 지 알고 있을 때 사용
while문은 몇 번 반복할 지 알 수 없을 때 사용(ex. 무한반복)