logging in or signing up 06%EC%9E%A5 aSGuest60674 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 28 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: August 13, 2010 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript 반복문의 기본 for 문 : 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로! 6 이 장에서 다룰 내용 : 이 장에서 다룰 내용 중첩 for 문 2 01_단순 for 문 : 01_단순 for 문 반복문 특정 문장을 반복하게 만들어 주는 것 주로 for 문과 while 문 사용 [기본예제 6-1] 같은 문장을 반복하여 출력하는 예 : [기본예제 6-1] 같은 문장을 반복하여 출력하는 예 01 #include <stdio.h> 02 03 int main() 04 { 05 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 06 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 07 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 08 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 09 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 10 } [기본예제 6-2] 기본 for 문 사용 예 : [기본예제 6-2] 기본 for 문 사용 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 07 for (i=0 ; i<5 ; i++) 08 { 09 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 10 } 11 } for 문 사용 01_단순 for 문 : 01_단순 for 문 01_단순 for 문 : 01_단순 for 문 for 문의 기본 형식 01_단순 for 문 : 01_단순 for 문 for 문의 개념 이해와 표현 방식 01_단순 for 문 : 01_단순 for 문 for 문의 동작 과정 01_단순 for 문 : 01_단순 for 문 반복 실행할 문장이 2개 이상이면 블록 사용 [기본예제 6-3] for 문과 블록 사용 예 : [기본예제 6-3] for 문과 블록 사용 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 for ( i=0 ; i < 3 ; i++ ) 07 { 08 printf("안녕하세요? \n"); 09 printf("반갑습니다 \n"); 10 } 11 12 printf("\n\n"); 13 14 for ( i=0 ; i < 3 ; i++ ) 15 printf("안녕하세요? \n"); 16 printf("반갑습니다 \n"); 17 } for 문에 블록 사용 for 문에 블록을 사용하지 않은 경우 [기본예제 6-4] 기본 for 문 사용 예 ① : [기본예제 6-4] 기본 for 문 사용 예 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 07 for (i = 5 ; i > 0 ; i--) 08 { 09 printf("%d : 안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n", i); 10 } 11 } 초기값을 5로 지정, i 값을 1씩 줄여가며 출력 [기본예제 6-5] 기본 for 문 사용 예 ② : [기본예제 6-5] 기본 for 문 사용 예 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 07 for (i=1 ; i<=5 ; i++) 08 { 09 printf("%d \n", i); 10 } 11 } 초기값을 5로 지정, i 값을 1씩 줄이면서 출력 [기본예제 6-6] for 문을 사용하지 않은 덧셈 : [기본예제 6-6] for 문을 사용하지 않은 덧셈 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap; 06 07 hap = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10; 08 09 printf(" 1에서 10까지의 합: %d \n", hap); 10 } hap 변수에 1~10 더하기 [기본예제 6-7] for 문을 활용하여 합계 구하기 ① : [기본예제 6-7] for 문을 활용하여 합계 구하기 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap; 06 int i; 07 08 for ( i=1 ; i<=10 ; i++) { 09 hap = hap + i; 10 } 11 12 printf(" 1에서 10까지의 합: %d \n", hap); 13 } 값을 누적할 변수 선언 1~10까지 변할 변수 선언 1~10까지 반복 hap에 누적시킴 01_단순 for 문 : 01_단순 for 문 쓰레기(garbage) 값의 이해 변수 안에 이미 다른 값이 있는 상태로 연산을 수행함으로써비정상적인 결과 값 출력 프로그램 내에서 변수가 초기화되지 않은 것이 원인 누적값을 표현하는 변수의 초기화를 수행함으로써 문제 해결 int hap = 0; [기본예제 6-8] for 문을 활용하여 합계 구하기 ② : [기본예제 6-8] for 문을 활용하여 합계 구하기 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap=0; 06 int i; 07 08 for ( i=1 ; i<=10 ; i++) { 09 hap = hap + i; 10 } 11 12 printf(" 1에서 10까지의 합: %d \n", hap); 13 } 누적할 변수를 초기화 함 01_단순 for 문 : 01_단순 for 문 변수 i와 hap의 변화 [응용예제 6-9] for 문을 활용하여 합계 구하기 ③ : [응용예제 6-9] for 문을 활용하여 합계 구하기 ③ 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap = 0; 06 int i; 07 08 for ([ ① ]; i<=1000 ; [ ② ]) { 09 hap = hap + i; 10 } 11 12 printf(" 500에서 1000까지의 홀수의 합: %d \n", hap); 13 } i 값을 501부터 2씩 증가시키며 합을 구함 i = 501 i = i + 2 01_단순 for 문 : 01_단순 for 문 [기본예제 6-10] for 문을 활용하여 합계 구하기 ④ : [기본예제 6-10] for 문을 활용하여 합계 구하기 ④ 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap=0; 06 int i; 07 int num; 08 09 printf(" 값 입력 : "); 10 scanf("%d", &num); 11 12 for ( i=1 ; i <= num ; i++) { 13 hap = hap + i; 14 } 15 16 printf(" 1에서 %d까지의 합: %d \n", num, hap); 17 } 누적할 변수를 초기화 함 1씩 증가할 변수 입력받은 최종값 최종값을 직접 입력받음 1부터 입력받은 최종값까지 반복하며 값을 더하기 응용예제 6-11] for 문을 활용하여 합계 구하기 ⑤ : 응용예제 6-11] for 문을 활용하여 합계 구하기 ⑤ 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap=0; 06 int i; 07 int num1, num2, num3; 08 09 printf(" 시작값, 끝값, 증가값 입력 : "); 10 scanf("%d %d %d", &num1, &num2, &num3 ); 11 12 for ( i=num1 ; i <= num2 ; [ ① ] ) { 13 hap = hap + i; 14 } 15 16 printf(" %d에서 %d까지 %d씩 증가한 합: %d \n", num1, num2, num3, hap); 17 } 입력받은 세 변수 선언 i = i + num3 입력 시 공백으로 구분 입력받은 증가값을 for 문에 사용 [기본예제 6-12] for 문을 사용한 구구단 프로그램 : [기본예제 6-12] for 문을 사용한 구구단 프로그램 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 int dan; 07 08 printf(" 몇 단 ? "); 09 scanf("%d", &dan); 10 11 for ( i=1 ; i <=9 ; i++) { 12 printf(" %d X %d = %d \n", dan, i, dan*i); 13 } 14 } 입력값을 저장할 변수 선언 계산할 단 입력 1부터 9까지 반복하며 구구단 출력 01_단순 for 문 : 01_단순 for 문 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문의 개념 for 문 내부에 또 다른 for 문이 들어있는 형태 총 반복 횟수 = 바깥 for 문 횟수 x 안쪽 for 문 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문의 동작 [기본예제 6-13] 중첩 for 문의 사용 예 ① : [기본예제 6-13] 중첩 for 문의 사용 예 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for ( i=0 ; i<3 ; i++) 08 { 09 for ( k=0 ; k<2 ; k++) 10 { 11 printf("중첩 for 문입니다. (i값: %d, k값: %d)\n", i, k); 12 } 13 } 14 } 반복할 변수 i, k 선언 바깥 3회 반복 내부 2회 반복 i, k 값 총 6번 출력 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문에서의 i와 k 값의 변화 02_중첩 for 문 : 02_중첩 for 문 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문을 활용한 구구단 출력(세로 방향) [기본예제 6-14] 중첩 for 문의 사용 예 ② : [기본예제 6-14] 중첩 for 문의 사용 예 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for ( i = 2 ; i <= 9 ; i ++) 08 { 09 for ( [ ① ] ) 10 { 11 printf(" %d X %d = %d \n", i, k, i*k); 12 } 13 printf("\n"); 14 } 15 } 2~9단까지 반복 k = 1 ; k <= 9 ; k ++ 1~9까지의 뒷자리 숫자 반복 구구단 출력 각 단마다 한 줄 띄움 02_중첩 for 문 : 02_중첩 for 문 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문을 활용한 구구단 출력(가로 방향) [기본예제 6-15] 중첩 for 문의 사용 예 ③ : [기본예제 6-15] 중첩 for 문의 사용 예 ③ 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for ( i = 1 ; i <= 9 ; i ++) 08 { 09 for ( k = 2 ; k <= 9 ; k ++) 10 { 11 printf("%2dX%2d=%2d", [ ① ] ); 12 } 13 printf("\n"); 14 } 15 } 1~9까지의 뒷자리 숫자 반복 k, i, k*i 2~9단까지 반복 각 단별로 한 줄씩 출력 한 줄 띄움 03_그 외에 for 문에 관한 이야기 : 03_그 외에 for 문에 관한 이야기 여러 개의 초기값과 증감식 사용하는 for 문 초기값이 하나일 필요 없음 초기값이 여러 개일 때는 콤마로 구분 증감식도 하나 이상 사용 가능 초기값과 증감식이 없는 for 문 세 가지 형식 모두 결과가 같음 for ( 초기식 1, 초기식 2 ; 조건식 ; 증감식 1, 증감식 2 ) 03_그 외의 for 문에 관한 이야기 : 03_그 외의 for 문에 관한 이야기 초기식이 없더라도 그 자리는 반드시 세미콜론(;)으로 구분 ①번과 ③번 소스의 비교 [기본예제 6-16] 다양한 for 문의 형태 ① : [기본예제 6-16] 다양한 for 문의 형태 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for ( i = 1, k = 1 ; i <= 9 ; i++, k++ ) 08 printf (" %d X %d = %d \n", i, k, i*k); 09 } 반복할 변수 i, k 선언 초기값과 증감식이 2개 03_그 외의 for 문에 관한 이야기 : 03_그 외의 for 문에 관한 이야기 무한루프 for 문에서 초기값, 조건식, 증감식을 모두 지운 형태 사용자가 어떤 작업을 계속 반복하고자 할 때 사용 사용자가 Ctrl+C 키를 눌러야 중단됨 [기본예제 6-17] 다양한 for 문의 형태 ② : [기본예제 6-17] 다양한 for 문의 형태 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 i = 0; 07 for ( ; ; ) 08 { 09 printf ("%d \n", i) ; 10 i ++ ; 11 } 12 } 초기값, 조건식, 증감식 없으므로 무한루프를 의미 [기본예제 6-18] 다양한 for 문의 형태 ③ : [기본예제 6-18] 다양한 for 문의 형태 ③ 01 #include <stdio.h> 02 03 int main() 04 { 05 int a, b; 06 07 [ ① ]( ; ; ) 08 { 09 printf ("더할 두 수 입력 (멈추려면 Ctrl+C) : ") ; 10 scanf("%d %d", &a, &b); 11 12 printf("%d + %d = %d \n", a, b, a+b); 13 } 14 } 무한루프 for 두 값을 입력받음 출력 [예제모음_13] 구구단 출력 : [예제모음_13] 구구단 출력 실행결과 예제설명 중첩 for 문을 사용하여 제목과 구구단을 출력하는 프로그램이다. 예제모음_13 소스 : 예제모음_13 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for( i = 2 ; i <= 9 ; i++ ) 08 printf(" #제%d단#", i); 09 10 printf("\n\n"); 11 12 for ( i = 1 ; i <= 9 ; i++) 13 { 14 for ( k = 2 ; k <= 9 ; k++) 15 { 16 printf("%2dX%2d=%2d", k, i, k*i); 17 } 18 printf("\n"); 19 } 20 } 제목 출력 2줄 띄움 중첩 for 문으로 구구단 출력 [예제모음_14] 아스키 코드표 출력 : [예제모음_14] 아스키 코드표 출력 실행결과 예제설명 for 문과 if 문을 사용하여 0~127번까지 아스키 코드의 10진수, 16진수, 문자를 출력하는 프로그램이다. 예제모음_14 소스 : 예제모음_14 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 07 for ( i= 0 ; i < 128 ; i++) 08 { 09 if ( i%16 == 0 ) 10 { 11 printf("---------------------/n"); 12 printf("10진수 16진수 문자 /n"); 13 printf("---------------------/n"); 14 } 15 printf ("%5d %5x %5c\n", i, i, i); 16 } 17 } 0부터 127까지 i 값을 10진수, 16진수, 문자로 출력 16행 마다 제목 출력 [예제모음_15] 입력한 문자를 거꾸로 출력 : [예제모음_15] 입력한 문자를 거꾸로 출력 실행결과 예제설명 for 문을 사용하여 입력된 영문자나 숫자를 다시 거꾸로 출력하는 프로그램 예제모음_15 소스 : 예제모음_15 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 char str[100]; 06 int str_cnt; 07 int i; 08 09 printf("영문자 및 숫자를 입력 (100자 이하) : "); 10 scanf("%s", str); 11 12 printf("\n"); 13 printf("입력한 문자열 ==> %s\n", str); 14 printf("변환된 문자열 ==>"); 15 문자 배열 문자 입력 두 번째 수 입력 문자 개수 변수 예제모음_12 소스 : 예제모음_12 소스 16 str_cnt = strlen(str); 17 18 for ( i= str_cnt ; i >=0 ; i--) 19 { 20 printf ("%c", str[i]); 21 } 22 23 printf("\n"); 24 } 입력된 개수만큼 거꾸로 출력 입력 문자 개수 계산 요약 : 요약 반복해야 할 문장을 원하는 만큼 반복 for 문의 형식 for 문 for 문 안에 또 다른 for 문이 있는 형태 중첩 for 문의 형식 구구단 계산 및 출력에 많이 쓰임 중첩 for 문 for ( i = 0 ; i < 반복횟수 ; i ++ ) { for ( k = 0 ; k < 반복횟수 ; k++) { 반복할 문장들; } } for ( 초기값 ; 조건식 ; 증감식 ) { 반복할 문장들; } 요약 : 요약 for 문의 초기값, 조건식, 증감식은 하나 이상 생략 가능 for( ; ; ;)은 문법적으로 아무 문제가 없으며, 무한루프 역할 수행 for 문의 다른 형태 Slide 50: www.themegallery.com Thank You ! IT CookBook for Beginner, C 언어 기초 6장 끝 You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
06%EC%9E%A5 aSGuest60674 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT lite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 28 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: August 13, 2010 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript 반복문의 기본 for 문 : 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로! 6 이 장에서 다룰 내용 : 이 장에서 다룰 내용 중첩 for 문 2 01_단순 for 문 : 01_단순 for 문 반복문 특정 문장을 반복하게 만들어 주는 것 주로 for 문과 while 문 사용 [기본예제 6-1] 같은 문장을 반복하여 출력하는 예 : [기본예제 6-1] 같은 문장을 반복하여 출력하는 예 01 #include <stdio.h> 02 03 int main() 04 { 05 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 06 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 07 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 08 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 09 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 10 } [기본예제 6-2] 기본 for 문 사용 예 : [기본예제 6-2] 기본 for 문 사용 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 07 for (i=0 ; i<5 ; i++) 08 { 09 printf("안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n"); 10 } 11 } for 문 사용 01_단순 for 문 : 01_단순 for 문 01_단순 for 문 : 01_단순 for 문 for 문의 기본 형식 01_단순 for 문 : 01_단순 for 문 for 문의 개념 이해와 표현 방식 01_단순 for 문 : 01_단순 for 문 for 문의 동작 과정 01_단순 for 문 : 01_단순 for 문 반복 실행할 문장이 2개 이상이면 블록 사용 [기본예제 6-3] for 문과 블록 사용 예 : [기본예제 6-3] for 문과 블록 사용 예 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 for ( i=0 ; i < 3 ; i++ ) 07 { 08 printf("안녕하세요? \n"); 09 printf("반갑습니다 \n"); 10 } 11 12 printf("\n\n"); 13 14 for ( i=0 ; i < 3 ; i++ ) 15 printf("안녕하세요? \n"); 16 printf("반갑습니다 \n"); 17 } for 문에 블록 사용 for 문에 블록을 사용하지 않은 경우 [기본예제 6-4] 기본 for 문 사용 예 ① : [기본예제 6-4] 기본 for 문 사용 예 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 07 for (i = 5 ; i > 0 ; i--) 08 { 09 printf("%d : 안녕하세요? 빙글빙글 for 문을 공부중입니다. ^^\n", i); 10 } 11 } 초기값을 5로 지정, i 값을 1씩 줄여가며 출력 [기본예제 6-5] 기본 for 문 사용 예 ② : [기본예제 6-5] 기본 for 문 사용 예 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 07 for (i=1 ; i<=5 ; i++) 08 { 09 printf("%d \n", i); 10 } 11 } 초기값을 5로 지정, i 값을 1씩 줄이면서 출력 [기본예제 6-6] for 문을 사용하지 않은 덧셈 : [기본예제 6-6] for 문을 사용하지 않은 덧셈 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap; 06 07 hap = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10; 08 09 printf(" 1에서 10까지의 합: %d \n", hap); 10 } hap 변수에 1~10 더하기 [기본예제 6-7] for 문을 활용하여 합계 구하기 ① : [기본예제 6-7] for 문을 활용하여 합계 구하기 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap; 06 int i; 07 08 for ( i=1 ; i<=10 ; i++) { 09 hap = hap + i; 10 } 11 12 printf(" 1에서 10까지의 합: %d \n", hap); 13 } 값을 누적할 변수 선언 1~10까지 변할 변수 선언 1~10까지 반복 hap에 누적시킴 01_단순 for 문 : 01_단순 for 문 쓰레기(garbage) 값의 이해 변수 안에 이미 다른 값이 있는 상태로 연산을 수행함으로써비정상적인 결과 값 출력 프로그램 내에서 변수가 초기화되지 않은 것이 원인 누적값을 표현하는 변수의 초기화를 수행함으로써 문제 해결 int hap = 0; [기본예제 6-8] for 문을 활용하여 합계 구하기 ② : [기본예제 6-8] for 문을 활용하여 합계 구하기 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap=0; 06 int i; 07 08 for ( i=1 ; i<=10 ; i++) { 09 hap = hap + i; 10 } 11 12 printf(" 1에서 10까지의 합: %d \n", hap); 13 } 누적할 변수를 초기화 함 01_단순 for 문 : 01_단순 for 문 변수 i와 hap의 변화 [응용예제 6-9] for 문을 활용하여 합계 구하기 ③ : [응용예제 6-9] for 문을 활용하여 합계 구하기 ③ 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap = 0; 06 int i; 07 08 for ([ ① ]; i<=1000 ; [ ② ]) { 09 hap = hap + i; 10 } 11 12 printf(" 500에서 1000까지의 홀수의 합: %d \n", hap); 13 } i 값을 501부터 2씩 증가시키며 합을 구함 i = 501 i = i + 2 01_단순 for 문 : 01_단순 for 문 [기본예제 6-10] for 문을 활용하여 합계 구하기 ④ : [기본예제 6-10] for 문을 활용하여 합계 구하기 ④ 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap=0; 06 int i; 07 int num; 08 09 printf(" 값 입력 : "); 10 scanf("%d", &num); 11 12 for ( i=1 ; i <= num ; i++) { 13 hap = hap + i; 14 } 15 16 printf(" 1에서 %d까지의 합: %d \n", num, hap); 17 } 누적할 변수를 초기화 함 1씩 증가할 변수 입력받은 최종값 최종값을 직접 입력받음 1부터 입력받은 최종값까지 반복하며 값을 더하기 응용예제 6-11] for 문을 활용하여 합계 구하기 ⑤ : 응용예제 6-11] for 문을 활용하여 합계 구하기 ⑤ 01 #include <stdio.h> 02 03 int main() 04 { 05 int hap=0; 06 int i; 07 int num1, num2, num3; 08 09 printf(" 시작값, 끝값, 증가값 입력 : "); 10 scanf("%d %d %d", &num1, &num2, &num3 ); 11 12 for ( i=num1 ; i <= num2 ; [ ① ] ) { 13 hap = hap + i; 14 } 15 16 printf(" %d에서 %d까지 %d씩 증가한 합: %d \n", num1, num2, num3, hap); 17 } 입력받은 세 변수 선언 i = i + num3 입력 시 공백으로 구분 입력받은 증가값을 for 문에 사용 [기본예제 6-12] for 문을 사용한 구구단 프로그램 : [기본예제 6-12] for 문을 사용한 구구단 프로그램 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 int dan; 07 08 printf(" 몇 단 ? "); 09 scanf("%d", &dan); 10 11 for ( i=1 ; i <=9 ; i++) { 12 printf(" %d X %d = %d \n", dan, i, dan*i); 13 } 14 } 입력값을 저장할 변수 선언 계산할 단 입력 1부터 9까지 반복하며 구구단 출력 01_단순 for 문 : 01_단순 for 문 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문의 개념 for 문 내부에 또 다른 for 문이 들어있는 형태 총 반복 횟수 = 바깥 for 문 횟수 x 안쪽 for 문 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문의 동작 [기본예제 6-13] 중첩 for 문의 사용 예 ① : [기본예제 6-13] 중첩 for 문의 사용 예 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for ( i=0 ; i<3 ; i++) 08 { 09 for ( k=0 ; k<2 ; k++) 10 { 11 printf("중첩 for 문입니다. (i값: %d, k값: %d)\n", i, k); 12 } 13 } 14 } 반복할 변수 i, k 선언 바깥 3회 반복 내부 2회 반복 i, k 값 총 6번 출력 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문에서의 i와 k 값의 변화 02_중첩 for 문 : 02_중첩 for 문 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문을 활용한 구구단 출력(세로 방향) [기본예제 6-14] 중첩 for 문의 사용 예 ② : [기본예제 6-14] 중첩 for 문의 사용 예 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for ( i = 2 ; i <= 9 ; i ++) 08 { 09 for ( [ ① ] ) 10 { 11 printf(" %d X %d = %d \n", i, k, i*k); 12 } 13 printf("\n"); 14 } 15 } 2~9단까지 반복 k = 1 ; k <= 9 ; k ++ 1~9까지의 뒷자리 숫자 반복 구구단 출력 각 단마다 한 줄 띄움 02_중첩 for 문 : 02_중첩 for 문 02_중첩 for 문 : 02_중첩 for 문 중첩 for 문을 활용한 구구단 출력(가로 방향) [기본예제 6-15] 중첩 for 문의 사용 예 ③ : [기본예제 6-15] 중첩 for 문의 사용 예 ③ 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for ( i = 1 ; i <= 9 ; i ++) 08 { 09 for ( k = 2 ; k <= 9 ; k ++) 10 { 11 printf("%2dX%2d=%2d", [ ① ] ); 12 } 13 printf("\n"); 14 } 15 } 1~9까지의 뒷자리 숫자 반복 k, i, k*i 2~9단까지 반복 각 단별로 한 줄씩 출력 한 줄 띄움 03_그 외에 for 문에 관한 이야기 : 03_그 외에 for 문에 관한 이야기 여러 개의 초기값과 증감식 사용하는 for 문 초기값이 하나일 필요 없음 초기값이 여러 개일 때는 콤마로 구분 증감식도 하나 이상 사용 가능 초기값과 증감식이 없는 for 문 세 가지 형식 모두 결과가 같음 for ( 초기식 1, 초기식 2 ; 조건식 ; 증감식 1, 증감식 2 ) 03_그 외의 for 문에 관한 이야기 : 03_그 외의 for 문에 관한 이야기 초기식이 없더라도 그 자리는 반드시 세미콜론(;)으로 구분 ①번과 ③번 소스의 비교 [기본예제 6-16] 다양한 for 문의 형태 ① : [기본예제 6-16] 다양한 for 문의 형태 ① 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for ( i = 1, k = 1 ; i <= 9 ; i++, k++ ) 08 printf (" %d X %d = %d \n", i, k, i*k); 09 } 반복할 변수 i, k 선언 초기값과 증감식이 2개 03_그 외의 for 문에 관한 이야기 : 03_그 외의 for 문에 관한 이야기 무한루프 for 문에서 초기값, 조건식, 증감식을 모두 지운 형태 사용자가 어떤 작업을 계속 반복하고자 할 때 사용 사용자가 Ctrl+C 키를 눌러야 중단됨 [기본예제 6-17] 다양한 for 문의 형태 ② : [기본예제 6-17] 다양한 for 문의 형태 ② 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 i = 0; 07 for ( ; ; ) 08 { 09 printf ("%d \n", i) ; 10 i ++ ; 11 } 12 } 초기값, 조건식, 증감식 없으므로 무한루프를 의미 [기본예제 6-18] 다양한 for 문의 형태 ③ : [기본예제 6-18] 다양한 for 문의 형태 ③ 01 #include <stdio.h> 02 03 int main() 04 { 05 int a, b; 06 07 [ ① ]( ; ; ) 08 { 09 printf ("더할 두 수 입력 (멈추려면 Ctrl+C) : ") ; 10 scanf("%d %d", &a, &b); 11 12 printf("%d + %d = %d \n", a, b, a+b); 13 } 14 } 무한루프 for 두 값을 입력받음 출력 [예제모음_13] 구구단 출력 : [예제모음_13] 구구단 출력 실행결과 예제설명 중첩 for 문을 사용하여 제목과 구구단을 출력하는 프로그램이다. 예제모음_13 소스 : 예제모음_13 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 int i, k; 06 07 for( i = 2 ; i <= 9 ; i++ ) 08 printf(" #제%d단#", i); 09 10 printf("\n\n"); 11 12 for ( i = 1 ; i <= 9 ; i++) 13 { 14 for ( k = 2 ; k <= 9 ; k++) 15 { 16 printf("%2dX%2d=%2d", k, i, k*i); 17 } 18 printf("\n"); 19 } 20 } 제목 출력 2줄 띄움 중첩 for 문으로 구구단 출력 [예제모음_14] 아스키 코드표 출력 : [예제모음_14] 아스키 코드표 출력 실행결과 예제설명 for 문과 if 문을 사용하여 0~127번까지 아스키 코드의 10진수, 16진수, 문자를 출력하는 프로그램이다. 예제모음_14 소스 : 예제모음_14 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 int i; 06 07 for ( i= 0 ; i < 128 ; i++) 08 { 09 if ( i%16 == 0 ) 10 { 11 printf("---------------------/n"); 12 printf("10진수 16진수 문자 /n"); 13 printf("---------------------/n"); 14 } 15 printf ("%5d %5x %5c\n", i, i, i); 16 } 17 } 0부터 127까지 i 값을 10진수, 16진수, 문자로 출력 16행 마다 제목 출력 [예제모음_15] 입력한 문자를 거꾸로 출력 : [예제모음_15] 입력한 문자를 거꾸로 출력 실행결과 예제설명 for 문을 사용하여 입력된 영문자나 숫자를 다시 거꾸로 출력하는 프로그램 예제모음_15 소스 : 예제모음_15 소스 01 #include <stdio.h> 02 03 int main() 04 { 05 char str[100]; 06 int str_cnt; 07 int i; 08 09 printf("영문자 및 숫자를 입력 (100자 이하) : "); 10 scanf("%s", str); 11 12 printf("\n"); 13 printf("입력한 문자열 ==> %s\n", str); 14 printf("변환된 문자열 ==>"); 15 문자 배열 문자 입력 두 번째 수 입력 문자 개수 변수 예제모음_12 소스 : 예제모음_12 소스 16 str_cnt = strlen(str); 17 18 for ( i= str_cnt ; i >=0 ; i--) 19 { 20 printf ("%c", str[i]); 21 } 22 23 printf("\n"); 24 } 입력된 개수만큼 거꾸로 출력 입력 문자 개수 계산 요약 : 요약 반복해야 할 문장을 원하는 만큼 반복 for 문의 형식 for 문 for 문 안에 또 다른 for 문이 있는 형태 중첩 for 문의 형식 구구단 계산 및 출력에 많이 쓰임 중첩 for 문 for ( i = 0 ; i < 반복횟수 ; i ++ ) { for ( k = 0 ; k < 반복횟수 ; k++) { 반복할 문장들; } } for ( 초기값 ; 조건식 ; 증감식 ) { 반복할 문장들; } 요약 : 요약 for 문의 초기값, 조건식, 증감식은 하나 이상 생략 가능 for( ; ; ;)은 문법적으로 아무 문제가 없으며, 무한루프 역할 수행 for 문의 다른 형태 Slide 50: www.themegallery.com Thank You ! IT CookBook for Beginner, C 언어 기초 6장 끝