본문 바로가기

언어/Java

[ 자바 / Java ] 반복문 do while

반응형

 

 

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 문은 둘 다 조건이 참일 동안 반복되지만, 두 가지 중요한 차이점이 있습니다:

  1. 조건 검사 시점:
    • while 문은 반복하기 전에 조건을 검사합니다. 따라서 조건이 처음부터 거짓이면 코드 블록은 한 번도 실행되지 않습니다.
    • do-while 문은 코드 블록을 먼저 실행한 후 조건을 검사합니다. 따라서 조건이 거짓이더라도 코드 블록은 최소한 한 번 실행됩니다.
  2. 구문 구조:
    • 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 문과의 주요 차이점은 코드 블록이 조건 검사 전에 한 번 실행된다는 점입니다. 이를 잘 활용하면 보다 직관적이고 효과적인 반복 작업을 구현할 수 있습니다.

반응형