소프트웨어/C 언어

[C언어]09. 반복된 일을 계속해주는 반복문에 대하여 알아보자 -1- ( for 문, 이중 for 문)

리습 2013. 6. 5. 06:30


 안녕하십니까. 리습입니다.


 이제 우리는 컴퓨터에게 일을 시킬 때 "~을 ~할때 해라!" 라고 말할 수 있게 되었습니다. " if "와 함수를 이용해서 말입니다. 그런데 또 일을 시키다보니 문제가 생겼습니다. 모두들 알고 계시듯이 컴퓨터는 반복하는 작업을 가장 잘하는 기계입니다. 그런데 몇번해라! 라고 반복을 시키려고 하니 타이핑을 몇 줄 해야하는지 막막 하실겁니다. 한두번은 써서라도 하겠지만 그 숫자가 100단위를 넘어가고 1000단위로 가게 되면 어떻게 할까요? 그래서 만들어 진것이 반복문입니다. C언어에서는 반복문에는 종류가 3가지 for, do while, while 세가지가 있습니다. 일단 이번엔 for부터 알아보도록 하겠습니다.

 for 은 숫자로 반복하는 횟수를 제어하는 쉬운 반복문입니다. 명시적으로 몇번 반복을 할것인지 결정할때 주로 많이 쓰입니다. 반복문은 흔히들 루프문이라고도 합니다.

 우선 for의 형태입니다.

1. <초기값> : for문을 반복할때 사용될 변수와 초기숫자를 지정한다. 변수의 이름과 형식은 자유로우나 주로 int를 사용한다.
                   ex) for ( int i = 0 ; <조건식> ; <증감식>)
2. <조건식> : for문을 반복할때 언제까지 반복할지 명시한다. 조건이 맞을때 for문은 계속 반복된다. 주로 초기값과 비교 하는 식을 많이 사용한다.
                   ex) for ( int i = 0 ; i < 50 ;  <증감식> )
3. <증감식> : 초기값을 얼만큼 증가 시킬 것인지 결정해준는 식이다. 주로 +1 을 많이 해준다.
                   ex) for ( int i = 0 ; i < 50 ; i = i + 1)     "여기서 i++로 쓴 곳도 있는데 i를 1 증가시킨다 는 의미이다. i = i + 1 과 같다."

 즉 지금까지 든 예로 본다면 초기값을 0을 주었으며 50이 되기 전까지 1씩 증가시키며 반복하기때문에 총 50번 반복하게 되는 것입니다. 아직은 몇번 반복시키는 것인지 익숙하지 않을 것이니 예를 보면서 생각해보도록 하겠습니다.

단순히 몇번 반복되었는지 알려주는 코드입니다. 보기 편하게 매번 반복되도록 만들었습니다.

 코드

 #include <stdio.h>

 int main( void )

 {

    for ( int i = 0 ; i < 10 ; i = i+1 )

   {

       printf (" %d 번째 반복되었습니다. \n", i+1 );

   }

    return 0;

 }

 결과

 1번째 반복되었습니다.

 2번째 반복되었습니다.

 3번째 반복되었습니다.

 4번째 반복되었습니다.

 5번째 반복되었습니다.

 6번째 반복되었습니다.

 7번째 반복되었습니다.

 8번째 반복되었습니다.

 9번째 반복되었습니다.

 10번째 반복되었습니다.



 단순히 반복하는 코드이기때문에 어렵지 않습니다. 또한 몇번인지 익숙해지고 싶으시면 저 위에 숫자 10을 바꾸면서 결과값을 보시기 바랍니다.
 또 for 문을 2개 반복하면 재미있는 모습을 현상을 보실수 있습니다. 이또한 여러경우에 사용되므로 한번 해보시는걸 추천드립니다.


 코드

 #include <stdio.h>

 int main( void )

 {

    for ( int i = 0 ; i < 10 ; i = i+1 )

   {

       for ( int j = 0 ; j < 10 ; j = j +1 )

       {

             printf (" %d - %d 번째 반복되었습니다. \n", i+1 , j+1 );

       }

   }

    return 0;

 }

 결과

 1-1번째 반복되었습니다.

 1-2번째 반복되었습니다.

 1-3번째 반복되었습니다.

 1-4번째 반복되었습니다.

 1-5번째 반복되었습니다.

             ...

 10-6번째 반복되었습니다.

 10-7번째 반복되었습니다.

 10-8번째 반복되었습니다.

 10-9번째 반복되었습니다.

 10-10번째 반복되었습니다.


 


 이것도 10 을 바꿔가면서 한번 동작을 관찰 해 보시는걸 추천드립니다. for문은 거이 정형적으로 동일하게 저런 형태를 많이 사용합니다. 때문에 그냥 어떤식으로 반복시킨다 라고 형태를 외우시는 것도 괜찮습니다.

 for문을 무한으로 돌리고 싶다면 조건에 아무것도 안써주면 됩니다. 그러면 컴파일러는 이것이 무조건 참이라고 생각하고 계속 반복하게 됩니다. for(;;) 이런식으로 작성하시면 됩니다.

 이제 컴퓨터에게 반복하는 일을 시킬수 있게 되었습니다. 하지만 반복시키는 법은 for만 있는 것이아닙니다. 그 다음에는 다른 반복문에 대하여 알아보도록 하겠습니다.