본문 바로가기
C++

C++ 기초(4): 제어문-반복문(22.04.12)

by Luden59 2022. 4. 13.

반복문

특정 조건에 따라서 실행문을 일정 횟수만큼 반복 실행하도록 제어.


종류

1. while 문

2. do-while 문

3. for 문


1. while 문

while([조건식]){
		[실행문];
		[조건식을 바꾸는 실행문];
		if([조건식])
				break;
}
  • 조건식이 참이면, 실행문을 반복해서 실행한다. 
  • 조건식이 계속 참이면 무한으로 반복한다.
    • whlie문을 중단시키는 방법
      1. 조건식을 바꾸는 실행문을 실행한다.
      2. 실행문 속 조건식을 판별하여 break 할 수 있도록 한다.
        • 만약 break만 있을 경우 한번만 돌고 끝난다.
int repeat_count = 0;
while(1){
        cout << "Hello World" << endl;
        repeat_count++;

        if (repeat_count >= 5)
            break;
    }

Hello World를 5번 출력하는 while문


2. do-while 문

do {
		[실행문]
} while([조건식]);
  • 실행문을 먼저 실행하고 조건을 따진다.
  • 무조건 1번 이상은 실행문이 실행된다.
  • while 끝에는 ;은 필수이다.
    int repeat_count = 0;
    do {
        cout << "Hello World" << endl;
        repeat_count++;
    } while (repeat_count < 5);

Hello World를 5번 출력하는 do-while문


2-1) do-while문 실습

  • 정답을 맞출 때까지 반복되는 1~9 랜덤 숫자 맞추기 프로그램
    //실습3: 맞출 때까지 반복되는 숫자 맞추기 프로그램
        cout << "\n##실습3: 맞출 때까지 반복되는 숫자 맞추기 프로그램" << endl;
        srand(time(NULL));
        int answer = rand() % 9 + 1;
    
        int user_num;
        do {
            cout << "예상 값 입력: ";
            cin >> user_num;
            if (user_num != answer)
                cout << "false" << endl;
            else 
                break;
        } while (1);
    
        cout << "true" << endl;

3. for문

  • while문 만큼이나 많이 사용되는 반복문
for( [초기식]; [조건식]; [증감식]){
		[실행문]
}
  • 순서: 초기식 > 조건식 > 실행문 > 증감식 > 조건식 > 증감식 > 실행문 ...
  • 조건식의 결과값이 0(거짓)이 될 때까지 반복
cout << "\n##for문" << endl;
for (int i = 0; i < 5; i+=2) {// 3번 나온다.(0, 2, 4)
    cout << "Hello World" << endl;

3-1. for문 실습1: 10~1까지 차레대로 출력되는 코드

//for 실습1: 10부터 1까지 차례대로 출력되는 코드를 작성해보자. >>>
    cout << "##for문 실습1: 10부터 1까지 차례대로 출력되는 코드를 작성해보자." << endl;
    for (int i = 10; i > 0;i--)
        cout << i << " ";

3-2. for문 실습2: 100 미만의 3의 배수를 차례대로 출력되는 코드

//for 실습2: 100 미만의 3의 배수를 차례대로 출력되는 코드를 작성해보자. >>>
    cout << "##for문 실습2: 100 미만의 3의 배수를 차례대로 출력되는 코드를 작성해보자." << endl;
    for (int i = 1;i * 3 < 100;i++)
        cout << i * 3 << " ";
//for 실습2: 100 미만의 3의 배수를 차례대로 출력되는 코드를 작성해보자. >>>
    cout << "##for문 실습2: 100 미만의 3의 배수를 차례대로 출력되는 코드를 작성해보자." << endl;
    for (int i = 3; i < 100; i += 3)
        cout << i << " ";

3-3. for문 실습3: 1000미만의 2의 승수를 차례대로 출력하는 코드

//for 실습3: 1000 미만의 2의 승수를 차례대로 출력되는 코드를 작성해보자. >>>
    cout << "##for문 실습3: 1000 미만의 2의 승수를 차례대로 출력되는 코드를 작성해보자." << endl;
    for (int i = 1;i < 1000;i *= 2)
        cout << i << " ";

3-4. for문 실습4: 구구단 출력하기

  • 구구단 2단 출력
//for 실습4_1: 구구단 2단을 차례대로 출력해보자.
    cout << "##for문 실습4_1: 구구단 2단을 차례대로 출력해보자." << endl;
    for (int i = 1;i < 10;i++)
        cout << "2 * " << i << " = " << 2 * i << endl;
  • 구구단 2~9단을 차례대로 출력
//for 실습4_2: 구구단 2단~9단을 차례대로 출력해보자.
    cout << "\n##for문 실습4_2: 구구단 2단~9단을 차례대로 출력해보자." << endl;
    for (int i = 2; i < 10;i++) {
        for (int j = 1; j < 10;j++) {
            cout << i <<" * " << j << " = " << i * j << endl;
        }
        cout << endl;
    }
  • 구구단 2단~9단을 다음과 같은 형태로 출력

2단 3단 4단

5단 6단 7단

8단 9단     

//for 실습4_3: 구구단 2단~9단을 다음과 같은 형태로 출력해보자.
    cout << "\n##for문 실습4_3: 구구단 2단~9단을 다음과 같은 형태로 출력해보자." << endl;
    for (int i = 2; i <= 8;i+=3) {
        for (int j = 1; j < 10;j++) {
            cout << i <<" * " << j << " = " << i * j <<"\t";
            cout << i + 1 <<" * " << j << " = " << (i + 1) * j <<"\t";
            if (i != 8)
                cout << i + 2 << " * " << j << " = " << (i + 2) * j << endl;
            else
                cout << endl;
        }
        cout << endl;
    }