Java의 do-while
문은 조건이 참(true
)일 동안 코드 블록을 반복 실행하는 반복문입니다. do-while
문은 while
문과 유사하지만, 중요한 차이점이 있습니다. do-while
문은 조건을 검사하기 전에 코드 블록을 최소한 한 번 실행한다는 점에서 다릅니다. 이는 코드 블록이 적어도 한 번은 실행되어야 하는 경우에 유용합니다.
1. do-while
문 기본 구조
do-while
문은 다음과 같은 구조를 가집니다:
do {
// 반복할 코드 블록
} while (조건);
- 반복할 코드 블록: 조건이 참인지 검사하기 전에 한 번 실행됩니다.
- 조건: 반복문이 계속 실행될 조건을 지정합니다. 조건이 참일 동안 반복이 계속됩니다.
2. do-while
문 예제
다음은 기본적인 do-while
문 예제입니다.
public class DoWhileExample {
public static void main(String[] args) {
int count = 1;
// 1부터 5까지 숫자를 출력하는 do-while 문
do {
System.out.println("Count: " + count);
count++;
} while (count <= 5);
}
}
설명:
count
변수가 1로 초기화됩니다.do
블록의 코드가 먼저 실행됩니다.- 그런 다음
while
조건이 검사되고, 조건이 참이면do
블록이 다시 실행됩니다. - 조건이 거짓이 될 때까지 반복됩니다. 여기서는
count
가 5보다 작거나 같을 때까지 반복됩니다.
3. do-while
문과 while
문의 차이점
while
문과 do-while
문은 둘 다 조건이 참일 동안 반복되지만, 두 가지 중요한 차이점이 있습니다:
- 조건 검사 시점:
while
문은 반복하기 전에 조건을 검사합니다. 따라서 조건이 처음부터 거짓이면 코드 블록은 한 번도 실행되지 않습니다.do-while
문은 코드 블록을 먼저 실행한 후 조건을 검사합니다. 따라서 조건이 거짓이더라도 코드 블록은 최소한 한 번 실행됩니다.
- 구문 구조:
while
문은while (조건) { // 코드 }
형태입니다.do-while
문은do { // 코드 } while (조건);
형태로, 조건 뒤에 세미콜론(;
)이 필요합니다.
4. do-while
문을 사용한 예제들
사용자 입력을 이용한 예제
아래 예제에서는 사용자가 exit
를 입력할 때까지 반복해서 명령을 입력받고 출력하는 프로그램입니다.
import java.util.Scanner;
public class DoWhileUserInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input;
// "exit"를 입력할 때까지 사용자 입력을 반복 처리
do {
System.out.print("Enter a command (type 'exit' to quit): ");
input = scanner.nextLine();
System.out.println("You entered: " + input);
} while (!input.equals("exit"));
scanner.close();
}
}
설명:
- 사용자로부터 입력을 받고 "exit"를 입력할 때까지 반복합니다.
do
블록에서 입력을 받고 출력합니다.while
조건이 참인 동안 반복됩니다. 즉, 입력이 "exit"가 아닐 때 계속 반복합니다.
5. 무한 루프
do-while
문을 사용하여 무한 루프를 생성할 수 있습니다. 무한 루프는 특정 조건이 만족될 때까지 반복을 계속할 때 유용합니다.
public class DoWhileInfiniteLoopExample {
public static void main(String[] args) {
int count = 1;
// 무한 루프
do {
System.out.println("Count: " + count);
count++;
if (count > 10) {
break; // 특정 조건을 만족하면 루프 종료
}
} while (true);
}
}
설명:
do-while
문은 조건이true
이므로 무한 루프를 생성합니다.count
가 10을 넘으면break
문을 사용하여 루프를 종료합니다.
6. 메뉴 기반 프로그램
아래 예제는 간단한 메뉴 기반 프로그램으로, 사용자가 선택한 옵션에 따라 다른 작업을 수행합니다.
import java.util.Scanner;
public class DoWhileMenuExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("Menu:");
System.out.println("1. Print 'Hello'");
System.out.println("2. Print 'Goodbye'");
System.out.println("3. Exit");
System.out.print("Choose an option: ");
choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("Hello");
break;
case 2:
System.out.println("Goodbye");
break;
case 3:
System.out.println("Exiting...");
break;
default:
System.out.println("Invalid choice, please try again.");
}
} while (choice != 3);
scanner.close();
}
}
설명:
- 사용자가 3을 선택하여 "Exit"을 선택할 때까지 메뉴를 반복하여 출력합니다.
- 사용자가 입력한 숫자에 따라
switch
문에서 다른 작업을 수행합니다.
7. 결론
Java의 do-while
문은 코드 블록을 최소한 한 번 실행한 후 조건을 검사하는 반복문입니다. 이는 while
문과 달리, 조건을 검사하기 전에 실행할 필요가 있는 작업이 있을 때 유용합니다. do-while
문은 사용자 입력을 기반으로 하는 반복 작업이나 메뉴 기반의 프로그램에서 자주 사용됩니다. while
문과의 주요 차이점은 코드 블록이 조건 검사 전에 한 번 실행된다는 점입니다. 이를 잘 활용하면 보다 직관적이고 효과적인 반복 작업을 구현할 수 있습니다.
'언어 > Java' 카테고리의 다른 글
[ Java ] 배열의 선언과 초기화 (0) | 2024.06.17 |
---|---|
[ Java ] 반복문 Labeled Loop (1) | 2024.06.17 |
[ Java ] 반복문 while (1) | 2024.06.17 |
[ Java ] 반복문 for (1) | 2024.06.17 |
[ Java ] 조건문 switch 문 (1) | 2024.06.17 |