“while” 반복문은 특정 조건이 만족되는 동안 코드 블록을 반복적으로 실행하는 제어 구조입니다. 조건이 거짓으로 평가될 때까지 반복 실행되며, 조건이 참인 동안 계속해서 코드 블록을 수행합니다.
◎ 구문 |
while (조건) { // 코드 블록 } l “조건”: 반복 여부를 결정하는 논리 표현식입니다. l “코드 블록”: 반복적으로 실행될 문장들의 집합입니다. |
◎ 예제 1. 숫자 1부터 10까지 출력하기 |
“counter” 변수는 1부터 시작하여 1씩 증가하며, 10보다 작거나 같을 때까지 반복합니다. “System.out.println(counter)”: “counter” 변수의 현재 값을 출력합니다.
int counter = 1;
while (counter <= 10) {
System.out.println(counter);
counter++;
}
[출력]
“1
2
3
...
9
10”
◎ 예제 2. 사용자 입력값이 0이 될 때까지 숫자를 더하기 |
“while (true)”무한 루프를 돌면서 사용자 입력을 반복적으로 받습니다. 그리고 사용자가 0을 입력하면 break 를 이용해서 루프를 벗어납니다. “Integer.parseInt(System.console().readLine())”는 사용자가 입력한 문자열을 정수형으로 변환해서 숫자를 누적하는데 사용합니다.
int sum = 0;
int number;
while (true) {
System.out.print("숫자를 입력하세요 (0 to quit): ");
number = Integer.parseInt(System.console().readLine());
if (number == 0) {
break;
}
sum += number;
}
System.out.println("합계: " + sum);
[출력]
“숫자를 입력하세요 (0 to quit): 5
숫자를 입력하세요 (0 to quit): 10
숫자를 입력하세요 (0 to quit): 0
합계: 15”
◎ 예제 3. 랜덤 숫자 게임 |
Math.random() 함수를 이용해 1부터 100 사이의 랜덤 숫자를 만듭니다. 그리고 사용자 입력을 맞아서 랜덤으로 만들어진 숫자를 맞출 때까지 “while (guess != randomNumber)”코드를 이용해 반복합니다.
int randomNumber = (int) (Math.random() * 100) + 1;
int guess;
int tries = 0;
while (guess != randomNumber) {
System.out.print("1부터 100 사이의 숫자를 추측하세요: ");
guess = Integer.parseInt(System.console().readLine());
tries++;
if (guess > randomNumber) {
System.out.println("더 작은 숫자입니다.");
} else if (guess < randomNumber) {
System.out.println("더 큰 숫자입니다.");
}
}
System.out.println("축하합니다! " + tries + "번 만에 맞췄습니다.");
◎ while 반복문을 사용할 때 주의할 점 |
자바에서 “while” 반복문을 사용할 때 주의할 점은 다음과 같습니다. 아래의 주의사항을 지키면서 “while” 반복문을 사용하면 안전하고 효율적으로 프로그램을 작성할 수 있습니다.
1. 루프 탈출 조건 설정
- “while” 반복문을 사용할 때는 항상 루프를 탈출할 조건을 명확하게 설정해야 합니다. 그렇지 않으면 무한 루프에 빠질 수 있습니다.
int i = 0;
while (i < 5) {
System.out.println(i);
i++; // 루프 탈출을 위한 증가문 필요
}
2. 무한 루프 주의
- 조건을 올바르게 설정하지 않으면 무한 루프에 빠질 수 있습니다. 무한 루프에 빠지면 프로그램이 더 이상 실행되지 않습니다.
while (true) {
// 무한 루프
}
3. 루프 변수 업데이트
- 루프 변수를 업데이트하여 루프가 종료되도록 해야 합니다. 그렇지 않으면 루프가 영원히 실행됩니다.
int i = 0;
while (i < 5) {
System.out.println(i);
// i를 업데이트하는 코드가 없으면 루프가 종료되지 않음
}
4. 무한 반복 방지를 위한 타임아웃
- 무한 루프에 빠질 가능성이 있는 경우 무한 반복을 방지하기 위해 타임아웃을 설정하는 것이 좋습니다.
long startTime = System.currentTimeMillis();
while (조건) {
// 루프 내용
if (System.currentTimeMillis() - startTime > TIMEOUT) {
break; // 타임아웃 발생 시 루프 종료
}
}
5. 변수 초기화
- 루프 변수를 초기화하여 루프가 예상대로 동작하도록 해야 합니다.
int i = 0;
while (i < 5) {
// 루프 내용
i++;
}
'자바(JAVA)' 카테고리의 다른 글
자바(Java) 실행대기 함수 Sleep 와 Wait 함수 차이와 구현 방법 (0) | 2024.04.08 |
---|---|
깃허브(GitHub) 소스 업데이트 로그인 Token 생성하기 (0) | 2024.04.05 |
자바(Java) Scanner 클래스 사용하기 (0) | 2024.04.03 |
자바(Java) do-while 반복문 사용하기 (0) | 2024.03.29 |
자바(Java) 버전 확인하고 최신으로 업데이트 하는 방법 (1) | 2024.03.26 |
자바(Java) for 문 사용하기 (1) | 2024.03.26 |
자바(Java) switch case 구문 사용하기 (0) | 2024.03.25 |
자바(Java) if else 구문 사용하기 (0) | 2024.03.20 |