<aside> ❓ 문제 2) 1부터 10까지 숫자를 출력하는 프로그램을 작성하시오.

</aside>

필자는 문제와 함께 해법을 항상 같이 리스트할 것입니다. C언어의 문법이나 구문에 대해 익숙하지 않은 분들은 처음에는 해법을 보면서 이해하셔도 되지만 어느 정도 C언어의 문법과 구문을 이해하고 있는 분은 해법을 안보고서 먼저 문제 가지고 궁리하고 고민해 보면서 해법을 생각해 보십시오. 그것이 아마 여러분의 C 프로그래밍 능력을 향상시키는데 도움을 줄 것입니다.

해법 2)

#include <stdio.h>

void main()
{
   int i;

   for( i = 1; i <= 10; i ++)
      printf("%d",i);
}

해법을 보시면 아시겠지만 C언어의 제어문 중의 하나인 반복문으로 for 문을 사용해서 구현하고 있습니다. 이 해법에서 for 문은 i 값을 1부터 10까지 1씩 증가시켜 가면서 printf() 함수를 호출하고 있습니다. 여러분이 주목해야 할 사항은 for 문과 같은 반복문에 다른 명령문을 내포시킬 수 있다는 점입니다. 즉, for문은 다른 명령문을 내포시켜서 그 명령문들을 여러 번 반복하게 합니다. 이와 같은 반복문은 동일한 명령어들을 컴퓨터 상에서 처리가능한한 프로그래머가 원하는 만큼 반복할 수 있어 매우 강력한 프로그래밍 기법으로 사용됩니다. 우리는 해법2)의 결과로 다음을 얻게 됩니다.

결과2) 12345678910

중첩과 내포 개념은 C 언어로 프로그래밍 할 때 매우 자주 사용되게 되는 프로그래밍 기법이므로 반드시 사용법을 숙지해야 합니다. 다음과 같은 구문을 생각해 봅시다.

do
	if( i % 2 == 0) {
		sum += i;
		i++;
	}
while( i < 100);

위의 구문도 바로 do while 반복문 안에 if 조건문을 내포시켜 작성된 로직입니다. 반복하면서 특정 조건을 만족하는 경우에 대해서 처리를 해주는 식을 표현할 때 이와 같은 방식을 사용합니다. 필자가 본서의 서두에서 말씀드린 것처럼 이러한 내포 기능이 바로 C 프로그래밍의 표현력이라고 할 수 있습니다. 함수를 사용하는 것도 하나의 표현력이 될 수 있으며, 포인터를 사용하는 것도 표현력이 될 수 있습니다. 프로그램 로직을 구현하기 위해서 가장 적합한 표현력을 선택하는 것이 중요합니다.