Java의 While 문은 특정 조건이 true
인 동안 반복적으로 코드를 실행할 수 있도록 합니다. 반복 작업을 간단하고 효율적으로 처리할 수 있어 프로그램의 핵심적인 흐름 제어 도구로 자주 사용됩니다. 이번 글에서는 While 문의 기본 문법과 활용법, 작성 시 주의사항을 다뤄보겠습니다.
1. While 문 기본 문법
while
문은 조건식이 true
일 동안 코드를 반복 실행합니다. 조건식은 반복이 시작되기 전에 평가되며, 조건이 false
가 되면 반복이 종료됩니다.
While 기본 구조
while (조건식) {
// 조건식이 true일 때 실행될 코드
}
예제: 간단한 While 문
public class WhileExample {
public static void main(String[] args) {
int count = 0;
while (count < 5) {
System.out.println("카운트: " + count);
count++;
}
}
}
출력 결과:
카운트: 0
카운트: 1
카운트: 2
카운트: 3
카운트: 4
위 코드에서 count
값이 5 미만일 때 반복이 실행되며, count++
를 통해 값이 증가하다 조건이 false
가 되면 종료됩니다.
2. While 문 활용
while
문은 다양한 상황에서 활용됩니다. 아래는 실용적인 예제들을 통해 While 문의 활용법을 살펴보겠습니다.
2.1 사용자 입력 처리
While 문은 사용자 입력을 처리하거나 조건에 맞는 입력이 올 때까지 반복할 때 유용합니다.
import java.util.Scanner;
public class UserInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number;
while (true) {
System.out.print("1부터 10 사이의 숫자를 입력하세요: ");
number = scanner.nextInt();
if (number >= 1 && number <= 10) {
System.out.println("올바른 입력입니다: " + number);
break;
} else {
System.out.println("잘못된 입력입니다. 다시 시도하세요.");
}
}
scanner.close();
}
}
출력 예시:
1부터 10 사이의 숫자를 입력하세요: 15
잘못된 입력입니다. 다시 시도하세요.
1부터 10 사이의 숫자를 입력하세요: 7
올바른 입력입니다: 7
위 코드에서 while (true)
를 사용하여 무한 루프를 생성하고, 조건이 충족되면 break
로 종료합니다.
2.2 누적 합계 계산
While 문은 특정 범위의 값에 대해 반복 작업을 수행하여 합계를 계산하는 데 자주 사용됩니다.
public class SumExample {
public static void main(String[] args) {
int sum = 0;
int num = 1;
while (num <= 10) {
sum += num;
num++;
}
System.out.println("1부터 10까지의 합: " + sum);
}
}
출력 결과:
1부터 10까지의 합: 55
2.3 조건에 따라 요소 검색
While 문은 배열이나 컬렉션에서 특정 조건에 맞는 값을 검색하는 데도 활용됩니다.
public class SearchExample {
public static void main(String[] args) {
int[] numbers = {3, 5, 7, 9, 11};
int target = 7;
int index = 0;
boolean found = false;
while (index < numbers.length) {
if (numbers[index] == target) {
found = true;
break;
}
index++;
}
if (found) {
System.out.println("찾은 값: " + target + " (인덱스: " + index + ")");
} else {
System.out.println("값을 찾을 수 없습니다.");
}
}
}
출력 결과:
찾은 값: 7 (인덱스: 2)
3. 무한 루프와 While
while (true)
는 무한 루프를 생성하며, 네트워크 연결 유지나 지속적인 이벤트 처리와 같은 작업에 사용됩니다. 하지만 반드시 break
문을 통해 종료 조건을 추가해야 합니다.
무한 루프 예제
public class InfiniteLoopExample {
public static void main(String[] args) {
int count = 0;
while (true) {
System.out.println("반복 횟수: " + count);
count++;
if (count == 10) {
System.out.println("종료 조건에 도달했습니다.");
break;
}
}
}
}
출력 결과:
반복 횟수: 0
반복 횟수: 1
...
반복 횟수: 9
종료 조건에 도달했습니다.
4. While 문 작성 시 주의사항
- 조건식 유효성: 조건식이 항상
true
가 되는 경우 무한 루프가 발생할 수 있으니 주의하세요. - 변수 업데이트: 루프 안에서 조건을 변경하는 변수를 적절히 업데이트하지 않으면 반복이 끝나지 않을 수 있습니다.
- 루프 탈출: 특정 조건에서 반복을 종료하기 위해
break
문을 활용하세요.
5. While 문과 Do...While 비교
while
문은 조건을 먼저 평가하지만, do...while
문은 조건 평가 전에 블록을 한 번 실행합니다.
Do...While 예제
public class DoWhileExample {
public static void main(String[] args) {
int count = 0;
do {
System.out.println("반복 횟수: " + count);
count++;
} while (count < 5);
}
}
출력 결과:
반복 횟수: 0
반복 횟수: 1
반복 횟수: 2
반복 횟수: 3
반복 횟수: 4
조건이 처음부터 false
여도 do...while
은 한 번 실행되는 차이가 있습니다.
결론
Java의 While 문은 반복 작업을 처리하는 기본 도구로, 특정 조건을 만족하는 동안 코드를 실행하는 데 유용합니다. 사용자 입력 처리, 합계 계산, 배열 검색 등 다양한 작업에 활용할 수 있으며, 조건식과 변수 관리에 주의하면 효율적이고 안전한 코드를 작성할 수 있습니다. 이번 글에서 배운 내용을 바탕으로 While 문을 다양한 프로젝트에 활용해 보세요!
댓글 쓰기