반복문을 사용하는 가장 큰 이유는 코드의 반복을 줄이기 위해서 입니다.
예를 들어, 간단하게 0부터 4까지의 정수를 출력하는 코드를 짜보려 합니다.
출력 함수 printf만을 사용해서 만들기 위해서는 아래와 같이 작성을 해야할 것입니다.
printf("%d\n", 1);
printf("%d\n", 2);
printf("%d\n", 3);
printf("%d\n", 4);
printf("%d\n", 5);
이렇게 5번의 printf 함수를 사용하여 코드를 완성했습니다.
비교 예제로 for문을 사용한 코드는 아래와 같습니다.
for(int i = 1 ; i <= 5 ; ++i) {
printf("%d\n", i);
}
보신 결과와 같이 한눈에도 반복문의 코드가 확연히 줄어든 모습을 볼 수 있습니다. 또한, 가독성을 생각해도 훨씬 간단해진 느낌입니다. 사실 더 확연한 차이를 보기 위해서는 1~5까지 출력이 아닌 1~1000까지 출력을 해보면 알 수 있습니다. 반복문을 쓴 코드는 코드 길이에 변함이 없지만 printf만을 사용한 예제는 printf 함수를 1000번 사용해야 합니다.
이렇게 반복문을 왜 써야하는지는 쉽게 느끼셨을 수 있을 거라 생각듭니다. 그렇다면 이제 C언어의 반복문에는 어떤 함수가 있으며, 어떻게 사용해야 하는지에 대해 기초적인 부분을 설명해보겠습니다.
C언어에서 반복문은 3가지의 함수가 있습니다. 첫번째는 위의 예제로 설명드렸던 ‘for 문’, ‘while 문’, 마지막으로 ‘do-while 문’ 이 있습니다. 기초적인 문법은 아래의 그림과 같습니다.
해당되는 선언 및 초기화, 조건, 실행문 자리에 잘 맞춰 작성하면 기초적인 반복문 사용이 가능합니다. 많은 분들이 반복문에서 어려움을 느끼는 점은 쓰기는 썼는데 내부적으로 어떻게 실행되는지를 몰라서 이해를 못하거나 응용할 때 어려워합니다. 그래서 간단한 예제와 함께 반복문 3가지가 어떻게 내부적으로 흘러가는지 쉽게 설명드리겠습니다.
쉬운 이해를 돕기 위해 손으로 작성하여 보여드리겠습니다.
예제는 모두 동일하게 0, 1을 출력하는 간단한 예제입니다.
이렇게 반복문 3가지 각각의 흐름과 문법을 알아봤습니다.
요약을 하자면 3가지의 반복문는 반복이라는 기능을 수행함에 있어서는 모두 같은 결과를 뽑아낼 수 있습니다. 하지만 함수 안에서 선언과 초기화를 했던 for 문 과 조건만 가지고 참이 될 때까지 반복했던 while 문, 마지막으로 실행 순서가 혼자 달랐던 do-while문 까지 코드의 구성과 흐름은 조금씩 다른 모습을 볼 수 있었습니다.
너무 쉽게 느껴지셨을 수도 있지만 이런 기초적인 흐름을 제대로 알아야 이 후에 복잡한 코드를 작성하실 때에 헷갈리지 않으실 수 있습니다. 아무리 복잡한 반복문 코드여도 제가 작성한 그림의 순서와 같이 따라가보시면 어렵지 않게 느끼실 수 있을겁니다. 여기까지 기초 반복문 개념에 대해 설명해보았습니다. 설명이 틀린 부분이나 부족한 부분이 있다면 꼭 아래 댓글로 요청해주세요! 다음에는 중첩 반복문에 대해 정리해보겠습니다. 감사합니다. 😄
댓글