[ Java ] 반복문 while
Java의 while
문은 조건이 참(true
)일 동안 계속해서 코드 블록을 반복 실행하는 제어 구조입니다. for
문과는 달리, while
문은 반복 횟수가 사전에 정해지지 않은 경우나 조건에 따라 반복을 제어할 때 유용합니다.
1. while
문 기본 구조
while
문은 다음과 같은 구조를 가집니다:
while (조건) {
// 조건이 참일 동안 반복할 코드 블록
}
- 조건: 반복문이 실행될 조건을 지정합니다. 조건이 참일 동안 코드 블록이 계속해서 실행됩니다.
- 반복할 코드 블록: 조건이 참일 동안 반복적으로 실행되는 코드입니다.
2. while
문 예제
다음은 기본적인 while
문 예제입니다.
public class WhileLoopExample {
public static void main(String[] args) {
int count = 1;
// 1부터 5까지 숫자를 출력하는 while 문
while (count <= 5) {
System.out.println("Count: " + count);
count++;
}
}
}
설명:
count
변수가 1로 초기화됩니다.while
문은count
가 5보다 작거나 같을 때까지 반복됩니다.- 각 반복에서
count
의 값을 출력하고,count
를 1씩 증가시킵니다.
3. 무한 루프
while
문을 잘못 사용하면 무한 루프에 빠질 수 있습니다. 무한 루프는 종료 조건이 없거나 조건이 항상 참일 때 발생합니다. 이는 프로그램을 중단하지 않으면 계속 실행되므로 주의가 필요합니다.
public class InfiniteLoopExample {
public static void main(String[] args) {
int count = 1;
// 조건이 항상 참인 while 문 (무한 루프)
while (true) {
System.out.println("Count: " + count);
count++;
if (count > 5) {
break; // count가 5보다 크면 루프 종료
}
}
}
}
설명:
while (true)
는 항상 참이므로 무한 루프를 만듭니다.if
문을 사용하여count
가 5보다 커지면break
문으로 루프를 종료합니다.
4. do-while
문
do-while
문은 while
문과 유사하지만, 조건을 검사하기 전에 코드 블록을 최소한 한 번 실행합니다. 이 구조는 코드 블록이 적어도 한 번은 실행되어야 하는 경우에 유용합니다.
public class DoWhileExample {
public static void main(String[] args) {
int count = 1;
// do-while 문을 사용하여 1부터 5까지 숫자를 출력
do {
System.out.println("Count: " + count);
count++;
} while (count <= 5);
}
}
설명:
count
변수가 1로 초기화됩니다.do
블록 내의 코드는while
조건을 검사하기 전에 한 번 실행됩니다.count
가 5보다 작거나 같으면do
블록이 반복됩니다.
5. while
문에서의 제어문
while
문에서도 break
와 continue
같은 제어문을 사용하여 반복의 흐름을 제어할 수 있습니다.
break
문
break
문은 while
문을 즉시 종료합니다.
public class WhileBreakExample {
public static void main(String[] args) {
int count = 1;
// 1부터 10까지 숫자를 출력하지만 5에서 멈추는 while 문
while (count <= 10) {
if (count == 5) {
break; // count가 5일 때 루프 종료
}
System.out.println("Count: " + count);
count++;
}
}
}
설명:
count
가 5에 도달하면break
문이 실행되어 루프가 종료됩니다.- 1부터 4까지의 숫자만 출력됩니다.
continue
문
continue
문은 while
문 내에서 현재 반복의 나머지 부분을 건너뛰고 다음 반복을 시작합니다.
public class WhileContinueExample {
public static void main(String[] args) {
int count = 1;
// 1부터 10까지 숫자를 출력하지만 5를 건너뛰는 while 문
while (count <= 10) {
if (count == 5) {
count++;
continue; // count가 5일 때 이번 반복을 건너뜀
}
System.out.println("Count: " + count);
count++;
}
}
}
설명:
count
가 5일 때continue
문이 실행되어 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다.- 5를 제외한 1부터 10까지의 숫자가 출력됩니다.
6. 사용자 입력을 사용하는 while
문
사용자로부터 입력을 받아 그에 따라 반복을 제어할 수도 있습니다.
import java.util.Scanner;
public class WhileUserInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input;
// "exit"를 입력할 때까지 사용자 입력을 반복 처리
while (true) {
System.out.print("Enter a command (type 'exit' to quit): ");
input = scanner.nextLine();
if (input.equals("exit")) {
break; // 사용자가 "exit"을 입력하면 루프 종료
}
System.out.println("You entered: " + input);
}
scanner.close();
}
}
설명:
- 사용자가 "exit"을 입력할 때까지 루프가 반복됩니다.
- 사용자 입력을 읽고 출력합니다.
- "exit"을 입력하면
break
문이 실행되어 루프가 종료됩니다.
7. 결론
Java의 while
문은 조건이 참일 동안 반복 작업을 수행할 수 있는 강력한 제어 구조입니다. while
문과 do-while
문을 통해 다양한 상황에서 반복 작업을 수행할 수 있습니다. 조건이 언제 참이 되는지 또는 몇 번 반복해야 하는지 명확하지 않은 경우 while
문이 특히 유용합니다. 또한 break
와 continue
문을 사용하여 반복의 흐름을 유연하게 제어할 수 있습니다.