언어/Java

[ Java ] 반복문 while

Soso Dev 2024. 6. 17. 01:47
반응형

 

 

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 문에서도 breakcontinue 같은 제어문을 사용하여 반복의 흐름을 제어할 수 있습니다.

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 문이 특히 유용합니다. 또한 breakcontinue 문을 사용하여 반복의 흐름을 유연하게 제어할 수 있습니다.

반응형