산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ while/do-while 루프: 코드 반복의 마스터키

C++ while과 do-while 루프 – 반복문 마스터하기

while과 do-while 루프의 문법, 흐름도, 실전 예제, 모범 사례까지 명확히 설명합니다.

루프는 효율적인 프로그래밍의 초석입니다: 코드 중복 없이 블록을 반복 실행할 수 있게 해줍니다. 범위를 순회하든 사용자 입력을 기다리든, 적절한 루프 타입 선택은 가독성과 유지보수성에 필수적입니다.

C++에는 세 가지 주요 루프 구조가 있습니다:

  1. for 루프 – 반복 횟수가 정해져 있을 때 이상적
  2. while 루프 – 조건이 참인 동안 실행
  3. do…while 루프 – 조건 검사 전 **최소 한 번은 실행** 보장

for 루프는 이전 튜토리얼에서 다뤘으므로, 이번 글은 while과 do…while 루프의 문법, 실행 흐름, 흔한 함정, 실전 활용 사례에 집중합니다.


C++ while 루프

while 루프 문법은 단순합니다:

while (condition) {
    // 루프 본문
}

루프는 각 반복 전 condition을 평가합니다:

C++ 관계/논리 연산자 심화는 C++ 관계/논리 연산자 가이드를 참조하세요.


while 루프 플로차트

C++ while/do-while 루프: 코드 반복의 마스터키

예제 1: 1부터 5까지 숫자 출력

// 1부터 5까지 출력하는 C++ 프로그램
#include <iostream>
using namespace std;
int main() {
    int i = 1;
    // 1부터 5까지 while 루프
    while (i <= 5) {
        cout << i << " ";
        ++i;
    }
    return 0;
}

실행 결과

1 2 3 4 5

단계별 실행 분석:

반복변수i <= 5동작
1번째i = 1true1 출력, i → 2
2번째i = 2true2 출력, i → 3
3번째i = 3true3 출력, i → 4
4번째i = 4true4 출력, i → 5
5번째i = 5true5 출력, i → 6
6번째i = 6false루프 종료

예제 2: 양수의 합만 구하기

// 양수의 합 구하기 프로그램
// 음수 입력 시 루프 종료, 음수는 합에 포함 안 함
#include <iostream>
using namespace std;
int main() {
    int number;
    int sum = 0;
    // 사용자 입력 받기
    cout << "Enter a number: ";
    cin >> number;
    while (number >= 0) {
        // 양수 누적
        sum += number;
        // 양수면 다시 입력 받기
        cout << "Enter a number: ";
        cin >> number;
    }
    // 합 출력
    cout << "\nThe sum is " << sum << endl;
    return 0;
}

실행 결과

Enter a number: 6
Enter a number: 12
Enter a number: 7
Enter a number: 0
Enter a number: -2
The sum is 25

사용자에게 계속 숫자 입력받음. 0 이상이면 sum에 누적. 음수 입력 시 루프 종료 후 최종 합 출력.


C++ do…while 루프

do…while 루프는 while과 달리 **본문을 최소 한 번 실행한 후** 조건을 평가합니다. 루프 본문이 먼저 실행되어야 종료 조건을 확인할 수 있을 때 유용합니다.

문법:

do {
    // 루프 본문
} while (condition);

실행 흐름:


do…while 루프 플로차트

C++ while/do-while 루프: 코드 반복의 마스터키

예제 3: 1부터 5까지 숫자 출력

// 1부터 5까지 출력하는 C++ 프로그램
#include <iostream>
using namespace std;
int main() {
    int i = 1;
    // 1부터 5까지 do...while 루프
    do {
        cout << i << " ";
        ++i;
    } while (i <= 5);
    return 0;
}

실행 결과

1 2 3 4 5

실행 단계:

반복변수i <= 5동작
초기i = 1아직 검사 안 함1 출력, i → 2
1번째i = 2true2 출력, i → 3
2번째i = 3true3 출력, i → 4
3번째i = 4true4 출력, i → 5
4번째i = 5true5 출력, i → 6
5번째i = 6false루프 종료

예제 4: 양수의 합만 구하기 (do-while 버전)

// 양수의 합 구하기 (do-while 버전)
// 음수 입력 시 루프 종료, 음수는 합에 포함 안 함
#include <iostream>
using namespace std;
int main() {
    int number = 0;
    int sum = 0;
    do {
        sum += number;
        // 사용자 입력 받기
        cout << "Enter a number: ";
        cin >> number;
    } while (number >= 0);
    // 합 출력
    cout << "\nThe sum is " << sum << endl;
    return 0;
}

출력 1

Enter a number: 6
Enter a number: 12
Enter a number: 7
Enter a number: 0
Enter a number: -2
The sum is 25

출력 2

Enter a number: -6
The sum is 0.

첫 입력이 음수면 루프가 한 번 실행되고 바로 종료되어 sum은 0 그대로.


무한 루프

루프 조건이 절대 false가 되지 않으면 무한 루프가 됩니다. 의도적(서버 등)일 수도, 실수(로직 오류)일 수도 있습니다.

// 무한 while 루프
while (true) {
    // 루프 본문
}

do…while도 무한 루프 가능:

int count = 1;
do {
    // 본문
} while (count == 1);

이런 루프는 프로그램이 종료되거나 메모리 고갈 전까지 자원을 소모합니다.


for vs while 루프

for 루프는 반복 횟수를 미리 알 때 가장 적합:

// 5번 반복
for (int i = 1; i <= 5; ++i) {
    // 본문
}

반면 while, do…while은 반복 횟수가 런타임 데이터(사용자 입력, 복잡한 조건 결과)에 의존할 때 이상적입니다.


더 많은 C++ 루프 예제:

C 언어

  1. C++ 클래스와 객체: 객체지향 프로그래밍 실전 가이드
  2. C++ 메모리 관리 마스터: new와 delete 전문가 활용법
  3. C++ 상속 접근 지정자: public, protected, private 완벽 이해
  4. C++ 프렌드 함수와 프렌드 클래스: 접근 제어 마스터하기
  5. C++ do-while 루프: 문법, 실전 예제, 중첩 루프
  6. While vs Do-While 루프: 실전 예제로 명확히 이해하기
  7. 자바 팰린드롬 수 판별기: while/for 루프 알고리즘
  8. C++ 날짜와 시간 완벽 가이드: ctime 라이브러리 활용
  9. C++ 오버로딩 마스터하기: 함수 & 연산자 오버로딩 완전 정복
  10. C++ 파일 입출력 마스터하기: fstream으로 읽고 쓰기