반응형

@ for문

반복문이 몇 번 돌아야 할지 정해져 있을 때 많이 사용되는 for문 입니다.

#include <stdio.h>

main()

{

int i;

    for(i=0;i<5;i++)

        printf("IT&G\n");

printf("by 제나\n");

}

if문과 마찬가지로 { }(중괄호)를 사용해서 묶을 수도 있습니다.

위 소스처럼 { } 사용하시지 않는다면 하나의 실행문에 대해서만 반복하게 됩니다.

 

for문을 이용하여 1~10까지 정수의 합을 구하라.

#include <stdio.h>

main()

{

int i,sum=0;

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

    {

        sum=sum+i;

    }

        printf("1~10까지 합 = %d\n",sum);

}

i가 1에서 부터 10까지 1씩 증가합니다.

이때 이 i값을 sum이라는 변수에 누적시켜주는 소스입니다.

 

 

보시면 sum=0이라고 초기화를 시켜 주었는데요

이게 보기보다 매우 중요한 일입니다.

초기화를 해주지 않으신다면

처음 sum=sum+i에서 전혀 엉뚱한 값이 들어가버리게 됩니다.

쓰레기 값이 두둥~;;

 

반복문에도 판단문에서의 성적등급매기기 처럼 반드시 하고 지나가는게 있습니다.

바로 별찍기와 구구단인데요

별찍기는 나중에 따로 설명하기로 하고 구구단을 출력해보도록 할게요

별찍기 : 2013/11/05 - c언어 for문 별찍기

 

별찍기에도 구구단에도 이중 for문이 사용됩니다.

#include <stdio.h>

main()

{

int i,j;

    for(i=2;i<=9;i++)

    {

        for(j=1;j<=9;j++)

        {

            printf("%d * %d = %d ",i,j,i*j);

        }

            printf("\n");

    }

 

}

굉장히 짧은 소스임에도 엄청 많은 데이터를 출력해줍니다.^^;

변수 i는 구구단에서 단을 나타내고

변수 j는 구구단에서 1~9까지 곱해지는 수를 나타냅니다.

 

빨간색 표시된 printf()문에 의해서 각 단이 끝날 때 마다 \n을 해줘서 다른 줄에 표시되게 됩니다.

 

 

@ while

while()문은 ( )안의 내용이 참일 동안만 반복문을 수행합니다.

참고 .... while(1) 처럼 ()안에 1이라는 숫자를 넣어줘서 무한반복을 하도록 하기도 합니다.

 

for문을 이용해서 해봤던 1~10까지 합 구하기를 while문을 이용해서 구해볼게요.

#include <stdio.h>

main()

{

int i=0,sum=0;

    while(i<=10)

    {

        sum=sum+i;

        i++;

    }

    printf("while 1~10까지 합 = %d\n",sum);

}

for문과는 다르게 i도 선언하면서 0으로 초기화 해주어야 합니다.

for문에서는 for(i=0;i<=10;i++)와 같이 입력하였었죠?

빨간색 부분에서 초기화를 해주기 때문에 선언할 때는 그냥 i만 적어 줘도 되었습니다.

하지만 wihle문에서는 i값을 while 문 들어가기 전에 반드시! 초기화 해주세요

 

실제 while문은 저런 용도보다는...

#include <stdio.h>

main()

{

int menu;

 

printf("menu1\n");

printf("menu2\n");

printf("menu3\n");

printf("4 = 종료\n");

      

while(menu !=4)

    {

        scanf("%d",&menu);         

        printf("선택된 메뉴는 %d입니다\n",menu);

    }

}

위 소스 같은걸 응용해서 많이 사용하지요.

1, 2, 3일 경우는 계속 반복문을 수행하고, 4를 입력하면 종료되게 됩니다.

 

@ do while

일반 while문과 다른 점은 do while의 경우에는 조건이 일치하지 않아도 1번을 실행 한다는 것입니다.

#include <stdio.h>

main()

{

    int menu=4;

    

    printf("menu1\n");

    printf("menu2\n");

    printf("menu3\n");

    printf("4 = 종료\n");

    

    do

    {

        scanf("%d",&menu);

        printf("선택된 메뉴는 %d입니다\n",menu);

    }

    while(menu !=4);

        

        

}

처음에 변수 menu에 4를 주었습니다.

for문이나 while문일 경우엔 반복문을 한번도 실행하지 않게 되겠지만

do while는 반복문을 실행하게 됩니다.

 

while문..바로 종료 되네요.

반응형

'IT > Programing' 카테고리의 다른 글

c언어 함수(function)  (0) 2013.10.28
c언어 판단문 (if, else, switch)  (0) 2013.10.23
scanf() 함수를 이용하여 값을 입력 받아 보자  (0) 2013.10.16

+ Recent posts