@ 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 |