반복문

1 minute read


반복문

일정한 동작을 여러번 수행하고 싶을 때는 반복문을 사용한다.


예) 일정한 동작을 반복하는 코드가 있다.

#include <stdio.h>

int main()
{
  int a = 0;
  
  printf("%d\n", a);

  a++;
  printf("%d\n", a);

  a++;
  printf("%d\n", a);

  return 0;
}
 

값을 하나씩 올려주면서 출력을 한다. 지금은 3번만 출력하기 때문에 그렇게 길지 않지만 10번 100번 이러한 동작을 해야하는 상황에서 이러한 코드는 양도 방대해지고 수정을 해야할 경우 막막해진다.


#include <stdio.h>

int main()
{
  int a = 0;

  for (int i = 0; i < 3; i++)
  {
    printf("%d\n", a);
    a++;
  }

  return 0;
}

위 처럼 반복문을 사용하면 길게 쓸 필요없이 간략하게 코드를 작성하여 가독성을 높일 수 있다.


1. for (초기값; 조건식; 증감식) {반복할 내용}

  • 초기값은 for문에서 반복할 때 사용할 변수이다. 괄호 안에서 선언과 동시에 초기화가 가능하지만 컴파일러마다 차이가 있을 수 있다.
    변수명으로는 흔히 i, j, k 등을 사용한다.

  • 조건식은 반복문이 종료될 조건을 의미한다. 중요한 점은 여기서 정확한 조건식이 오지 않으면 무한루프에 걸려 에러가 날 수 있다.

  • 증감식으로 초기값을 증가 또는 감소시켜 조건식을 만족할 때 까지 반복할 수 있게 만든다. 증감식은 ++, –를 사용한다. i++과 ++i는 반복문에서는 차이가 없다.

  • 반복할 내용을 수행한 뒤 증감식을 통해 횟수를 카운트하기 위해 할당한 변수의 값이 변경되고 조건식을 확인한다. 그리고 종료시점이 아니라면 다시 반복하게 된다.


2. while (조건식) {반복할 내용}

  • 조건식을 만족할 때 까지 반복할 내용을 수행한다.
    증감식이 없기 때문에 중괄호 내에서 조건식을 만족시키게 만들어 주어야한다. 무한루프에 빠지기 쉽기 때문에 반복을 종료시킬 방법을 잘 설계해야한다.

  • 조건은 true, false로 판단하며 0은 false, 1은 true로 false가 될 때 까지 반복하게 된다.

    int a = 1;
    
    while(a)
    {
      printf("Hello World!");
      a++;
    }
    


3. do {반복할 내용} while (조건식)

  • 반복할 내용을 한 번 실행한 다음 조건을 확인하여 다음 수행을 결정한다.

    for와 while 반복문과는 다르게 무조건 한 번은 동작을 실행하게 된다.

    int a = 0;
    
    do {
      printf("Hello World");
    } while (a == 0);
    


반복문은 중첩해서 사용할 수 도 있고 여러번 반복해야할 동작들을 간단하게 쓸 수 있기 때문에 유용하지만 잘못하면 연산량을 증가시키고 무한루프에 빠지는 문제가 생길 수 있다.