본문 바로가기
공부/C언어

반복문

by ding9 2009. 10. 13.

반복문은 말 그대로 반복하는 것이다. 어떤 조건에 참이고 그 조건에 거짓이 될때까지 계속 반복을 하는 것이다. 가장 우리가 흔히 생각 할수 있는것이 바로 무궁화 꽃이 피었습니다 입니다. 무궁화 꽃이 피었습니다는 술래가 무궁화꽃이피었습니다를 다 말하기 전에 뒤를 볼수 없다는 조건이 있고 이 조건에서 술래를 제외한 나머지 사람들은 이 조건에서 자유로이 움직일수 있다는 것이죠. 그리고 항상 이것이 반복됩니다.

c언어에서 사용하는 것을 예로 보겠습니다. 우선 가장 대표적이라 할수 있는 for문을 예로 들겠습니다.

           for ( 초기화 ; 조건 ; 수식)
           {
                      실행구문;
           }

위와 같이 사용합니다. 우선 초기화부분에는 a= 1 이런식으로 어떤 변수의 값을 초기화 시켜주는 구문을 쓰면 되고, 조건에는 a>10 , a != 0, a == 0 이런식의 조건구문을 쓰면 되고, 수식에는 a++, a--, a= a-2 이런식의 수식을 적어주면 됩니다. 실행구문에는 이 반복문에서 어떻게 실행해라 라는 구문을 적어주면 되고요. 이제 C언어에서 가장 많이 쓰는 for문의 예를 사용하여 설명하겠습니다.

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

위의 구문을 해석하면 i는 1의 값으로 초기화를 해주고 i는 10보다 작다는 조건에 참 이므로 실행구문부분에 있는 출력구문을 출력한다. 출력이 끝난후 i++구문을 만나 1이 증가되어 2가 되고 i가 10보다 작다는 조건을 다시 만난다. 참이므로 실행구문을 실행하고 다시 i++ 구문을 만나 1이 증가되고 i가 10보다 작다는 조건을 다시 만난다. 
 
 이런식으로 반복이 되며 위의 for문은 총 9번을 반복하게 됩니다. 한번 잘 따라가 보세요. 어디서 많이 보던것 아닌가요? 우리가 초등학교 저학년때 많이 외웠던 구구단에서 2단입니다.아직 잘 모르겠다는 분은 위의 해석을 읽으면서 잘 따라가 보세요.

 이런식으로 for문은 수식과 조건을 잘 조절해준다면 100번도, 1000번도 같은 행동을 반복할수 있다는 장점이 있습니다. 그런데 이때 주의할 점은 조건을 잘 설정해야 올바르게 동작을 합니다. 잘못하면 for문이 아예 실행되지 않거나 무한루프에 빠지게 되거든요.

 그리고 반복문에는 for문 이외에도 while(), do{}while() 이라는 반복문이 있습니다.

이 두 반복문은 for문과는 달리 초기화와 수식이 () <- 괄호안에 들어가지 않으므로 따로 설정을 해줘야 합니다. 두 반복문의 예제는 아래와 같습니다.

           i=1;
           while(i < 10)
           {
                      printf(" 2 * %d = %d ", i, i*2);
                      i++;
           }

위의 예제는 while의 예이고,

           i=1;
           do {
                      printf(" 2 * %d = %d ", i, i*2);
                      i++;
           } while(i < 10) ;

이것은 do while의 예 입니다.

보시는 바와 같이 while 뒤의 괄호에는 조건만 들어갑니다.

while과 do while의 가장 큰 차이점은 조건을 확인하고 실행하느냐 , 실행하고 조건을 확인하느냐의 차이 입니다. 약간 이해가 안되겠지만 i가 10임을 가정하고 처음부터 따라가 보겠습니다.

먼저 while의 경우 i가 10이므로 i < 10 의 조건에 거짓입니다. 그러므로 while의 실행구문은 실행되지 않습니다.

do while의 경우 i는 10이고 우선 출력을 합니다. 그리고 i++을 하면 i는 11이 되고나서 i < 10의 조건을 확인합니다.

이러한 미세한 차이가 있으니 사용할때 잘 생각하고 프로그램을 구성하면 되겠습니다.

이 반복문 역시 C언어를 비롯한 모든 프로그램에서 빠지지 않고 사용되는 것이므로 예제와 이론을 공부해서 반드시 자기것으로 만들어 놓아야 합니다.
반응형

'공부 > C언어' 카테고리의 다른 글

조건문  (0) 2009.10.13
연산자  (0) 2009.02.07
변수  (0) 2009.02.05
c언어란  (0) 2009.02.05

댓글