6장 반복제어문 for 문 while 문 do while 문 기타 제어문
for 문 for 문 초기화: 변수 초기값을 지정해 주고 반복문 시작을 나타낸다. 초기화: 변수 초기값을 지정해 주고 반복문 시작을 나타낸다. 조건식: 반복을 계속할지 아니면 멈출 지를 결정한다. 명령문들: 조건에 맞으면 명령문들을 실행한다. 증감식: 변수의 값을 증감식에 따라 증가시키거나 감소시킨다. 진행순서: ① → ② → ③ → ④ → ② → ③ → ④ 종료조건: 조건식이 거짓이 될 때 종료된다.
【예제 6-1】Ex1.c 02 for문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i; 05 06 for(i =0 ; i < 4 ; i++) 07 printf("**********\n"); 08 09 return 0; 10 } 표준입력 스트림
【예제 6-2】Ex2.c 02 for문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i, Sum = 0; 05 for(i =1 ; i <= 10 ; i++) 06 Sum += i; 07 08 printf("1부터 10까지의 합은 %d이다.\n", Sum); 09 return 0; 10 } 표준입력 스트림
【예제 6-3】Ex3.c 02 for문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i; 05 for(i =0 ; i < 5 ; i++) 06 printf("**********\n"); 07 08 printf("\n\n"); 09 for(i =1 ; i < 10 ; i+=2) 10 printf("**********\n"); 11 12 printf("\n\n"); 13 for(i =10 ; i > 0 ; i-=2) 14 printf("**********\n"); 15 16 return 0; 17 }
【예제 6-4】Ex4.c 02 for문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i; 05 06 for (i = 65; i <=90; i++) 07 printf("%c ", i); 08 09 printf("\n"); 10 return 0; 11} 표준입력 스트림
【예제 6-5】Ex5.c 02 for문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i, j; 05 for (i=0, j=0; i<3; i++, j++) 06 printf("i = %d j = %d\n", i,j); 07 08 return 0; 09 } 표준입력 스트림
다중 for 문 02 다중 for 문 (a)와 (b)두 개의 for문 블록이 있다면, 우선 첫 번째 블록의 for문(a)의 초기식(①)과 조건식(②)을 비교하여 참인지를 판단하고, 참이면, 두 번째 for문(b)의 초기식(③)과 조건식(④)을 비교한다. 두 번째 for문(b)의 초기식과 조건식이 참이면 명령문(⑤)을 수행하고, 두 번째 for문(b)의 증감식(⑥)에 따라 변수값을 증감시킨다. 두 번째 for문(b)의 조건식이 거짓이 되어 빠져나오면, 다시 첫 번째 for문(a)의 증감식(⑦)에 따라 변수값을 증감시키고, 참이면 두 번째 for문(b)을 다시 수행하고, 거짓이면 for문을 빠져나오게 된다.
【예제 6-6】Ex6.c 02 다중 for문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int sum, i, j; 05 printf("다중 for문의 예제입니다.\n"); 06 07 for (i = 1; i <= 3; i++) 08 { 09 for (j = 1; j <= 3; j++) 10 { 11 sum = i + j; 12 printf("%d + %d = %d\n", i, j, sum); 13 } 14 } 15 return 0; 16 }
【예제 6-7】Ex7.c 02 다중 for문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i, j; 05 for (i = 1; i < 6; i++) 06 { 07 for (j = 0; j < i; j++) 08 { 09 printf("*"); 10 } 11 printf("\n"); 12 } 13 return 0; 14 } 표준입력 스트림
【예제 6-8】Ex8.c 02 다중 for문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i, j, count = 0; 05 06 for (i = 2; i <= 100; ++i) { 07 for (j = 2; j <i; ++j){ 08 if (i % j == 0) 09 break; 10 } 11 if (j == i){ 12 count++; 13 printf("%d%s", i, count % 5 ? " " : "\n"); 14 } 15 } 16 return 0; 17 } 표준입력 스트림
【예제 6-9】Ex9.c 02 실행문이 없는 for문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i, j, count = 0; 05 06 for (i = 2; i <= 100; ++i) 07 { 08 for( j=2; i%j ; j++); 09 10 if (j == i){ 11 count++; 12 printf("%d%s", i, count % 5 ? " " : "\n"); 13 } 14 } 15 return 0; 16 } 표준입력 스트림
while 문 03 while 문
【예제 6-10】Ex10.c 02 while문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int sum = 0, number = 1; 05 printf("1에서 10까지의 합을 구합니다.\n"); 06 07 while(number <= 10) 08 { 09 sum += number; 10 number++; 11 } 12 printf("결과는 : %d 입니다.\n", sum); 13 return 0; 14 } 표준입력 스트림
【예제 6-11】Ex11.c 02 while문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i = 64; 05 while(i <= 90) 06 { 07 printf("%c", i); 08 i++; 09 } 10 printf("\n"); 11 return 0; 12 } 표준입력 스트림
【예제 6-12】Ex12.c 02 while문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int a = 1, sum = 0; 05 while(sum < 300) 06 { 07 sum += a; 08 a++; 09 } 10 printf(" 합이 300이 넘는 최소의 a 값은 %d\n", a-1); 11 printf(" sum = %d\n", sum); 12 return 0; 13 } 표준입력 스트림
do ~ while 문 04 do ~ while 문
【예제 6-13】Ex13.c 02 do ~ while문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int sum = 0; 05 int number = 0; 06 07 printf("1에서 10까지의 합을 구합니다.\n"); 08 do { 09 number++; 10 sum += number; 11 } while(number < 10); 12 printf("결과는 : %d 입니다.\n", sum); 13 return 0; 14 } 표준입력 스트림
【예제 6-14】Ex14.c 02 do ~ while문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int sum = 0, index = 0; 05 06 do { 07 ++index; 08 sum = sum + index; 09 } while(sum < 1000); 10 printf("합이 1000보다 적은 최대 합은 = %d\n", sum - index); 11 printf("그 때의 최대 자연수는 %d 이다.\n", index-1); 12 13 return 0; 14 } 표준입력 스트림
【예제 6-15】Ex15.c 02 기타 제어문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int sum = 0; 05 int number = 0; 06 while(1) 07 { 08 sum += number; 09 number++; 10 if (number > 10) goto ex1; 11 } 12 ex1: 13 printf("1부터 10까지의 합을 구합니다.\n"); 14 printf("결과는 : %d 입니다.\n", sum); 15 return 0; 16 } 표준입력 스트림
【예제 6-16】Ex16.c 02 기타 제어문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i,j; 05 for (i = 1; i <= 100; i++) 06 { 07 for (j = 1; j <=9; j++) 08 { 09 printf("%d * %d = %2d\n", i, j, i*j); 10 if (i == 9 && j == 9) goto end; 11 } 12 } 13 end: printf("goto문을 빠져 나왔습니다.\n"); 14 return 0; 15 }
【예제 6-17】Ex17.c 02 기타 제어문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i; 05 06 for (i = 1; i < 100; i++) 07 { 08 printf(" %d ", i); 09 if (i >= 5) break; 10 } 11 printf("\n for문을 빠져나왔습니다.\n"); 12 return 0; 13 } 표준입력 스트림
【예제 6-18】Ex18.c 02 기타 제어문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i, sum=0; 05 06 for (i = 1; i <= 10; i++){ 07 if(i % 2 == 0) continue; 08 sum+=i; 09 } 10 printf("1부터 10까지의 홀수의 합은 %d이다.\n", sum); 11 return 0; 12 } 표준입력 스트림
【예제 6-19】Ex19.c 02 기타 제어문 예제 01 #include <stdio.h> 02 int main(void) 03 { 04 int i, sum=0; 05 06 for (i = 1; i <= 10; i++){ 07 if((i % 2 == 0) && (i % 3 == 0)) continue; 08 printf("%d ", i); 09 } 10 printf("\n"); 11 return 0; 12 } 표준입력 스트림