반복문

FastCampus All-In-One 패키지 중 C/C++ 수업을 듣고 정리한 자료입니다.

실행환경: Windows 10

학습목표

  • 반복문을 이용해 특정 조건이 부합할 때 특정한 명령어를 반복해보자.
  • 구구단 등의 예제를 작성해보며 내부원리를 이해.

FOR문


for (초기화; 조건; 반복  명령어) {
    // 반복적으로 실행할 부분
}
  • FOR문 내부의 조건에 부합하면 계속해서 특정 구문 실행
  • 반복문을 탈출하고자 하는 위치에 break구문 삽입

FOR문 예시


1부터 N까지의 합 출력하기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
    int n, sum = 0;
    printf("n을 입력하세요. ");
    scanf("%d", &n);
    for (int i = 1; i <= n; i++) {
        sum = sum + i;
    }
    printf("%d\n", sum);
    system("pause");
}

결과

n을 입력하세요. 10
55
계속하려면 아무 키나 누르십시오 . . .

무한 루프(Infinite Loop)


for (초기화; 조건; 반복  명령어) {
    // 조건이 항상 참(true)인 경우 무한 루프 발생
}
  • 종료 조건 없이 한없이 반복되는 반복문
  • 일부러 발생시키는 경우도 있으나 보통은 개발자의 실수
  • 컴퓨터의 성능상 좋지 않기 때문에 하지 않는것이 좋음

무한 루프 예시


#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
int main(void) {
    for (int i = 0; i <= 100; i--) {
        printf("Hello World!\n");
    }
    system("pause");
}
  • i-- - i를 0부터 계속 -1씩 해준다.
  • 그렇게 되면 i <= 100이라는 조건을 영원히 만족시키기에 무한루프

결과

Hello World!
Hello World!
Hello World!
Hello World!
.
.
.

While문


while (조건) {
    // 반복적으로 실행할 부분
}
  • While문의 조건에 부합하면 계속해서 특정한 구문 실행
  • 반복문을 탈출하고자 하는 위치에 break구문 삽입

While문 예시


특정 문자 N번 출력하기

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
    int n;
    char a;
    scanf("%d %c", &n, &a);
    while (n--) {
        printf("%c ", a);
    }
    system("pause");
    return 0;
}

결과

10 f
f f f f f f f f f f 계속하려면 아무 키나 누르십시오 . . .

중첩된 반복문


  • 반복문 내부에 다른 반복문이 존재하는 형태의 반복문
  • 중첩될수록 연산 횟수는 제곱 형태로 늘어난다.

구구단 출력하기


While문

#include <stdio.h>

int main(void) {
    int i = 1;
    while (i <= 9) {
        int j = 1;
        while (j <= 9) {
            printf("%d * %d = %d\n", i, j, i * j);
            j++;
        }
        printf("\n");
        i++;
    }
    system("pause");
}

for문

#include <stdio.h>

int main(void) {
    for (int i = 1; i <= 9; i++) {
        for (int j = 1; j <= 9; j++) {
            printf("%d * %d = %d\n", i, j, i * j);
        }
        printf("\n");
    }
    system("pause");
}

결과

1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
.
.
.

요약


  • 반복문은 For문While문이 있고 상호치환이 가능
  • 의도하지 않은 무한 루프가 발생하지 않도록 유의할것
  • 행렬, 그래프 등의 연산에 있어서 이중 반복문이 많이 활용됨.

Reference


패스트캠퍼스 컴퓨터공학 올인원 패키지

Comments