본문 바로가기
프로그래밍/JAVA

초보 자바 프로그래밍(6) - 반복문 while

by 머니테크리더 2023. 5. 1.
반응형

반복문 while 대표 이미지
반복문 while 대표 이미지

🔖 INDEX

     

     

    자바 프로그래밍에서 반복문은 특정 조건을 만족하는 동안 코드 블록을 반복적으로 실행하는데 사용됩니다. 'while' 문은 이러한 반복문 중 하나로, 조건이 참인 동안 코드 블록을 실행하고, 거짓이 되면 반복문이 종료됩니다.

     

    while 문의 문법

    다음은 while 반복문의 기본 구조입니다.

    while (조건식) {
        // 조건이 참인 동안 실행될 코드
    }
    1. while 문의 조건식을 평가합니다.
    2. 조건식이 참인 경우, 코드 블록 내의 명령문들을 순차적으로 실행합니다.
    3. 코드 블록의 실행이 완료되면, 다시 조건식을 평가합니다.
    4. 조건식이 거짓이 될 때까지 2-3 단계를 반복합니다.
    5. 조건식이 거짓이 되면, while 문을 종료하고 다음 코드 블록을 실행합니다.
    • 조건식 - while 문의 시작에 있는 괄호 안에 작성되는 논리 표현식입니다. 조건식이 참이면 반복문 내의 코드가 실행되고, 거짓이면 반복문이 종료됩니다.
    • 코드 블록 - 중괄호({})로 묶인 영역으로, 조건식이 참일 때 실행되는 코드들이 위치합니다.

     

     

    while 문의 예제 코드

    간단한 예제를 살펴봅시다.

    int counter = 0;
    
    while (counter < 5) {
        System.out.println("Counter: " + counter);
        counter++;
    }

    이 예제에서는 counter 변수가 0부터 시작하여 5 미만인 동안 "Counter: (counter 값)"을 출력하고, counter 값을 1 증가시킵니다. counter 값이 5가 되면 조건식이 거짓이 되어 while 문이 종료되고 프로그램이 계속 진행됩니다.

     

    while 문은 다양한 상황에서 사용됩니다. 예를 들어, 사용자로부터 입력을 받아 처리하는 경우, 네트워크 통신을 기다리는 경우, 특정 상태 변화를 감지하는 경우 등에 사용할 수 있습니다.

     

    사용 시 주의 사항

    자바 프로그래밍에서 while 반복문을 사용할 때 주의해야 할 몇 가지 점이 있습니다.

     

    1. 무한 루프: 조건식이 항상 참이거나 반복문 내에서 거짓이 될 수 없는 경우, 무한 루프에 빠질 수 있습니다. 따라서 반복문의 종료 조건을 명확히 설정해야 합니다.

    // 무한 루프 예시
    while (true) {
        // 실행할 코드
    }

     

    2. 조건식의 초기화 및 갱신: 조건식에서 사용되는 변수는 적절하게 초기화하고, 반복문 내에서 갱신해야 합니다. 그렇지 않으면 예상치 못한 결과가 발생할 수 있습니다.

    // 초기화 및 갱신이 누락된 예시
    int i;
    while (i <= 5) {
        System.out.println("i의 값은: " + i);
        // i++; // 주석을 해제하여 갱신을 추가해야 함
    }

     

    3. while 문과 do-while 문의 차이: while 문은 조건식을 먼저 평가하고 코드 블록을 실행하는 반면, do-while 문은 코드 블록을 먼저 실행한 후 조건식을 평가합니다. 따라서 do-while 문은 최소한 한 번은 코드 블록이 실행되는 것을 보장합니다.

     

     

    4. 조건식의 성능: 복잡한 조건식은 반복문의 성능에 영향을 줄 수 있습니다. 가능하면 조건식을 최적화하여 반복문의 성능을 향상시키세요.

    // 비효율적인 조건식 예시
    while (isPrimeNumber(n) && n < 100) {
        // 실행할 코드
        n++;
    }
    
    // 최적화된 조건식 예시
    while (n < 100) {
        if (isPrimeNumber(n)) {
            // 실행할 코드
        }
        n++;
    }

     

    5. 중첩된 반복문 사용: 반복문을 중첩하여 사용할 수 있지만, 너무 많은 중첩은 코드의 가독성과 성능에 영향을 미칠 수 있습니다. 필요한 경우에만 중첩된 반복문을 사용하고, 가능하면 메소드나 클래스를 활용하여 코드를 모듈화하세요.

    // 중첩된 반복문 예시
    int i = 1;
    while (i <= 5) {
        int j = 1;
        while (j <= 3) {
            System.out.println("i: " + i + ", j: " + j);
            j++;
        }
        i++;
    }

     

    6. break와 continue 사용: 반복문 내에서 break와 continue를 사용하여 흐름을 제어할 수 있습니다. break는 반복문을 완전히 종료하고, continue는 현재 반복을 건너뛰고 다음 반복을 시작합니다. 이러한 명령문을 적절하게 활용하여 코드의 가독성과 효율성을 높일 수 있습니다.

    // break 예시
    int sum = 0;
    int num = 1;
    while (true) {
        sum += num;
        num++;
        if (sum > 100) {
            break;
        }
    }
    System.out.println("합계가 100을 넘는 최초의 숫자: " + (num - 1));
    
    // continue 예시
    int total = 0;
    int i = 0;
    while (i < 10) {
        i++;
        if (i % 2 == 0) {
            continue;
        }
        total += i;
    }
    System.out.println("1부터 10까지의 홀수의 합: " + total);

     

    이러한 사항들을 고려하면서 반복문을 사용하면, 보다 안정적이고 가독성 좋은 코드를 작성할 수 있습니다.

     

     

     

    댓글