본문 바로가기

C Language/Programming Course

4장 반복문(2부 for문) 첫번째 시간


4장 반복문
2부 for문

    이번시간에는 반복문의 첫번째 시간으로 for문에 대해서 알아 보겠습니다.
    먼저 for문의 뜻을 알아보면 "~을 목적으로 하여" 라는 뜻을 가지고 있죠!?
    즉, 여기에서는 목적에 도달할때까지 반복을 한다고 생각하시면 됩니다.
    원형을 보시면

    for(초기값; 조건식; 증감식);
   
    이렇게 원형이 있습니다.

    즉, 초기 값을 주면 그 초기 값이 조건식에 성립되는지 확인을 하고, 
   조건식이 성립이 되면.. for문 안에 있는 내용을 실행시키고 증감식을
   통해서 증가 하거나 값을 감소 시킵니다. 그리고 다시 조건식에 성립되는지
   확인을 하여... 조건식에서 거짓이 나올때 까지 반복을 하는 것
    for문입니다.
    말로 설명하니깐.. 조금 이해하기가 어렵죠?!

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

    이 문장을 보겠습니다.
   
    이 문장을 보면 일단 for문의 제어변수 i의 값을 1로 초기화 해 놓았습니다.
    그리고 조건식은  i가 5보다 작을때까지 라는 조건식을 주고, 증감식으로는
    1씩 증가하라고 두웠습니다.
   
    그럼 순서를 보시면

    i에 초기값 1을 넣는다. (i=1)
    조건식과 비교 한다(1 < 5, 5보다 작기 때문에 참)
    출력문이 있기에 값을 출력

    i를 1증가 시킨다(i=2)
    조건식과 비교 한다(2 < 5, 5보다 작기 때문에 참)
    출력문이 있기에 값을 출력

    i를 1증가 시킨다(i=3)
    조건식과 비교 한다(3 < 5, 5보다 작기 때문에 참)
    출력문이 있기에 값을 출력

    i를 1증가 시킨다(i=4)
    조건식과 비교 한다(4 < 5, 5보다 작기 때문에 참)
    출력문이 있기에 값을 출력

    i를 1증가 시킨다(i=5)
    조건식과 비교 한다( 5 < 5, 5보다 작지 않기 때문에 거짓)
    for문을 빠져 나옴

    이런식으로 동작이 됩니다. 이제 이해가 조금 가시나요!?
    그럼 무한 반복을 하기 위해서는 어떤 방법이 있을까요!?
    여러가지 방법이 있지만 가장 간단한 방법은

    for(;;)
   
    이렇게 쓰면 무한 반복이 됩니다. 
    그리고 조건을 다 안 주셔도 된답니다.
    위 소스에서 조금 변형을 시켜 본다면,
    for(i = 1; i < 5;)
    {
        printf("%d", i);
        i++;
    }
    이런식으로 줘도 됩니다.

    더 줄일수도 있지만, 그렇게 줄일꺼면 다음시간에 배우는 while문을 쓰는게
    더 효과적이라 왠만하면 for문에서는 줄여서 사용을 안합니다. 
    그럼 여기에서 
    또다른 무한 반복이 나올 수 있겠죠!? 위 예에서 i++를 삭제 시켜주면
    계속 반복이 될 것입니다. 이런식으로 무한반복을 만들어도 됩니다.
    
    그리고  for문은 중복 for문을 사용할수도 있답니다.

   
    for(i = 1; i < 5; i++)
    {
        for(j = 0; j < 2; j++)
        {
            printf("%d", i);
        }
    }
   
    이런식으로 사용을 하시면 됩니다.
    돌아가는 형태를 그림으로 보시면
    i = 1  => j = 0
                j = 1
    i = 2  => j = 0
                j = 1
    i = 3  => j = 0
                j = 1
    i = 4  => j = 0
                j = 1

    이런식으로 i가 한번 돌때 그 안에 있는 for문이 다시 한번 돌고
    이런식으로 돌아 갑니다.
    그냥 for문의 돌아 가는 법을 이해하셨으면 충분히 이해하실 꺼 같네요~
    그럼 이 두가지 가지고 짤수 있는 프로그램들이 많이 있어요.
    for문을 공부하는 데 가장 잘 사용되는 것으로 별 모양 만들기가 있는데 
    이 프로그램은 제가 알고리즘 폴더에 시간 나는대로 올리겠습니다. 
    먼저 알고 싶으신 분들은 다른 블로그에도 많이 있을 것이니 
    그 블로그를 보고 공부를 하면 될 것 같습니다. 
    하지만 지금 이 설명만 듣고 다음으로 넘어 갈려고 하면 안됩니다. 
    어떤 식으로든 for문을 사용하여 여러가지 프로그램을 짜 보셔야 될 것입니다. 

    그럼 다음 시간에는 while문에 대해서 알아 보도록 하겠습니다.
   
    for문 예제
===========================================   
    #include <stdio.h>
   
    int main()
    {
        int count1;
        int count2;

        for(count1 = 1; count1 < 5; count1++)
        {
            for(count2 = 1; count2 < 5; count2++)
            {
                printf("%d * %d = %d ", count1, count2, count1*count2);
            }
            printf("\n");
        }
   
        return 0;
    }
===========================================   

문제 : 구구단을 출력 해 보세요~(for문 사용)