C언어 수업정리/3월 수업정리
3월15일 수업정리 for문
송시혁
2013. 3. 15. 11:57
while문과 for문
다음예제는 while문과 for문을 비교하기 위해 사용한것이다. 출력은 똑같이 1 2 3 4 5로 세로로 나온다. 아래 소스를 for문과 while문의 형태를 보고 비교해보자. (while은 주석문 처리하였다. for문이 실행되는지 확인하기 위해서이다. )
#include <stdio.h> int main() { int iCnt; iCnt = 1; /* while(5>=iCnt) { printf("%d\n", iCnt); ++iCnt; } */ for(iCnt =1; 5>=iCnt; ++iCnt) { printf("%d\n", iCnt); }
return 0;
}
for문 형식
for(초기식; 조건식; 증감식) { 명령문(내용) } 마찬가지로 뒤에 명령문이 한 줄일때는 생략이 가능하지만, 알아보기 쉽게 하도록
while문과 마찬가지로 중괄호를 무조건 삽입하는게 낫다.
p3-23예제
#include <stdio.h> #include <conio.h>
int main() { char ch; int i; printf("Please enter any character : "); for(i=0;(ch=getche()) !='$';i++) { printf("\nYou typed : %c\n", ch); printf("Please enter any character ; "); } putchar('\n'); return 0;
}
| 이 예제에서는 for문 형태를 유심히 보자.
for( i=0; -> 이부분은 변수를 지정한거 조건식 - (ch= getche()) - 이부분이 for문이 실행되는 조건이다. i++ 참/거짓이되는 조건. |
다음은 for문 내부에 if문이 중첩이 되어있는 프로그램 소스이다.
1부터 100까지의 짝수만을 출력하되 5섯줄 내려쓰는 형태로 출력한다.
#include <stdio.h> int main() { int i;
for (i = 1; i <= 100; i++) // 100번 실행 if (i % 2 == 0) { // 짝수임을 판단 printf ("%5d", i); // 정수를 출력 if (i % 5 == 0) printf ("\n"); // 다섯 숫자마다 줄
} return 0; }
|
for문에
1. 변수 i를 1로선언.
2. 조건식 i<= 100;으로 100보다 크거나 같으면 실행된다는 조건.
3. i++증감식 i를 if문이 다실행되고 다시 실행할 때, 그때 증감된다. (후치문)

for문을 이용한 1~200까지 범위에서 다음 수열을 출력하는 프로그램을 구하시오.
1 2 3 5 8 13 21 .......... 144
일단
1. 1~200까지 범위지정
2. 수의 규칙 파악하기
1과 2를 더해서 3이된다. 즉, 앞수 + 앞앞수 = 현재값
공식에서 3개의 변수를 선언해야한다고 예상할 수 있다.
3. 초기값 예외. 초기값은 따로 지정한다.
4.공식을 알고 원리를 알았으면 기본적인 베이스를 다 깔고 for문작성에 집중한다.
#include <stdio.h>
int main()
{
int ppnum;
int pnum;
int sum;
ppnum =1;
pnum =2;
printf(" %d %d ", ppnum, pnum);
for(sum=0;sum<200;)
{
if(sum>200)
{
break;
}
sum = ppnum + pnum;
printf("%3d ", sum);
ppnum = pnum;
pnum = sum;
}
return 0;
}
약간 다른 형태의 소스
#include <stdio.h> int main() { int ppnum; int pnum; int sum; ppnum =1; pnum =2; printf(" %d %d ", ppnum, pnum); for(sum=0;sum=ppnum + pnum<=200;) { sum = ppnum + pnum; printf("%3d ", sum); ppnum = pnum; pnum = sum; } return 0; } |