코딩 스쿨 Java

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

Java While Loop

Java While Loop: 자바 while 반복문 가이드

while 반복문은 Java에서 조건이 참인 동안 반복해서 코드를 실행하는 제어 구조입니다. 주어진 조건이 **true**인 동안 계속 실행되며, 조건이 거짓이 되면 반복을 종료합니다. while 반복문은 조건이 언제 참인지 또는 거짓이 될 때까지 몇 번 반복할지 모를 때 주로 사용됩니다.

이 가이드는 while 반복문의 구조와 사용법을 설명하고, 다양한 예제를 통해 이를 어떻게 활용할 수 있는지 보여줍니다.


1. 기본 while 반복문

while 반복문은 조건이 참일 때 계속해서 코드 블록을 반복 실행합니다.

구문:

while (조건) {
    // 조건이 참일 때 실행되는 코드
}

  • 조건: 반복문을 실행할 조건을 지정합니다. 이 조건이 **참(true)**이면 코드 블록이 실행되며, **거짓(false)**이 되면 반복을 종료합니다.
  • 조건이 처음부터 거짓이라면 한 번도 실행되지 않을 수 있습니다.

사용 예:

public class WhileExample {
    public static void main(String[] args) {
        int count = 1;

        while (count <= 5) {
            System.out.println("카운트: " + count);
            count++;  // count 값을 1씩 증가
        }
    }
}

설명:

  • *count <= 5*가 참일 동안 **"카운트: n"**을 출력하고 count를 1씩 증가시킵니다.
  • 결과: count가 1부터 5까지 출력됩니다.

2. 무한 루프

무한 루프는 반복 조건이 항상 참이어서 끝나지 않는 반복문을 말합니다. 일반적으로 프로그램의 실행을 지속하거나 사용자의 입력을 기다리는 작업에서 사용됩니다. 하지만 제어되지 않은 무한 루프는 프로그램이 종료되지 않게 할 수 있으므로 주의가 필요합니다.

예시:

public class InfiniteLoop {
    public static void main(String[] args) {
        while (true) {
            System.out.println("이 메시지는 계속 출력됩니다.");
            // 조건을 설정하여 루프를 종료하지 않으면 계속 실행
        }
    }
}

설명:

  • *while (true)*로 인해 조건이 항상 참이므로 루프가 끝나지 않습니다. 이를 무한 루프라고 합니다.
  • 일반적으로 특정 조건에서 break 문을 사용하여 종료합니다.

3. while 반복문과 break

break 문은 반복문을 즉시 종료하는 역할을 합니다. 주로 특정 조건이 만족되면 반복을 멈추고자 할 때 사용됩니다.

사용 예:

public class WhileBreakExample {
    public static void main(String[] args) {
        int count = 1;

        while (true) {
            System.out.println("카운트: " + count);
            if (count == 5) {
                break;  // count가 5일 때 반복 종료
            }
            count++;
        }
    }
}

설명:

  • *while (true)*로 무한 루프를 만들었지만, **count == 5*일 때 break 문을 만나 반복이 종료됩니다.
  • 결과: 1부터 5까지 출력된 후 루프가 종료됩니다.

4. while 반복문과 continue

continue 문은 반복문의 현재 반복을 건너뛰고 다음 반복으로 넘어가도록 합니다. 반복문을 종료하지 않고, 특정 조건에서만 코드 실행을 건너뛸 때 사용됩니다.

사용 예:

public class WhileContinueExample {
    public static void main(String[] args) {
        int count = 0;

        while (count < 10) {
            count++;
            if (count % 2 == 0) {
                continue;  // 짝수일 경우 이후 코드를 건너뛰고 다음 반복
            }
            System.out.println("홀수: " + count);
        }
    }
}

설명:

  • *짝수일 때는 continue*를 만나 출력하지 않고, 다음 반복으로 넘어갑니다.
  • 결과: 1, 3, 5, 7, 9만 출력됩니다.

5. while 반복문과 사용자 입력

while 반복문은 사용자 입력을 처리하는 데 유용합니다. 사용자가 특정 조건을 만족할 때까지 입력을 받을 수 있습니다.

사용 예:

import java.util.Scanner;

public class WhileUserInput {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input;

        while (true) {
            System.out.print("종료하려면 'exit'를 입력하세요: ");
            input = scanner.nextLine();

            if (input.equals("exit")) {
                break;  // 사용자가 'exit'을 입력하면 반복 종료
            }

            System.out.println("입력한 값: " + input);
        }

        System.out.println("프로그램 종료.");
        scanner.close();
    }
}

설명:

  • 사용자가 **exit*를 입력할 때까지 입력한 값을 출력하며, exit을 입력하면 **break*로 반복을 종료합니다.
  • 결과: 사용자가 여러 값을 입력하고 exit을 입력하면 종료됩니다.

6. 중첩된 while 반복문

while 반복문은 다른 while 반복문 내부에 중첩되어 사용할 수 있습니다. 이를 통해 이중 루프를 만들고, 더 복잡한 반복 구조를 처리할 수 있습니다.

사용 예:

public class NestedWhileLoop {
    public static void main(String[] args) {
        int outer = 1;

        while (outer <= 3) {
            System.out.println("외부 루프: " + outer);
            int inner = 1;

            while (inner <= 2) {
                System.out.println("   내부 루프: " + inner);
                inner++;
            }

            outer++;
        }
    }
}

설명:

  • 외부 루프가 3번 반복될 동안 내부 루프는 각각 2번씩 실행됩니다.
  • 결과: 외부 루프가 1일 때 내부 루프가 2번 실행, 외부 루프가 2일 때 또다시 2번 실행하는 식으로 반복됩니다.

7. while 반복문과 배열

while 반복문을 사용하여 배열의 요소를 순회할 수 있습니다. 인덱스를 사용하여 배열의 각 요소를 접근할 수 있습니다.

사용 예:

public class WhileArrayExample {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50};
        int index = 0;

        while (index < numbers.length) {
            System.out.println("배열 요소: " + numbers[index]);
            index++;
        }
    }
}

설명:

  • *배열의 길이(numbers.length)**가 인덱스보다 클 동안 배열 요소를 출력하고, 인덱스를 증가시켜 다음 요소로 이동합니다.
  • 결과: 배열의 모든 요소가 순서대로 출력됩니다.

8. do...while 반복문

do...while 반복문while 반복문과 비슷하지만, 코드를 먼저 실행한 후에 조건을 확인합니다. 따라서 조건이 처음부터 거짓이더라도 한 번은 무조건 실행됩니다.

구문:

do {
    // 실행할 코드
} while (조건);

사용 예:

public class DoWhileExample {
    public static void main(String[] args) {
        int count = 1;

        do {
            System.out.println("카운트: " + count);
            count++;
        } while (count <= 5);
    }
}

설명:

  • 처음에는 조건을 평가하지 않고 바로 코드를 실행한 후, 조건을 확인합니다.
  • 결과: 1부터 5까지 출력됩니다.

9. while 반복문을 사용하는 예시

9.1. 팩토리얼 계산

public class FactorialWhile {
    public static void main(String[] args) {
        int number = 5;
        int factorial = 1;

        while (number > 0) {
            factorial *= number;
            number--;
        }

        System.out.println("팩토리얼 값: " + factorial);  // 출력: 120
    }
}

9.2. 숫자의 자리수 합 계산

public class SumOfDigits {
    public static void

 main(String[] args) {
        int number = 12345;
        int sum = 0;

        while (number > 0) {
            sum += number % 10;  // 마지막 자리 숫자를 더함
            number /= 10;  // 마지막 자리 숫자를 제거
        }

        System.out.println("자리수 합: " + sum);  // 출력: 15
    }
}


요약

Java의 while 반복문은 조건이 참인 동안 반복해서 코드를 실행하는 구조입니다. 조건이 거짓이 될 때까지 반복을 지속하며, **break**와 **continue**를 사용해 반복 흐름을 제어할 수 있습니다. do...while 반복문은 한 번은 무조건 실행한 후 조건을 평가하는 반복문입니다. while 반복문은 무한 루프, 사용자 입력 처리, 배열 순회 등 다양한 상황에서 유용하게 사용됩니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com