Presentation is loading. Please wait.

Presentation is loading. Please wait.

6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.

Similar presentations


Presentation on theme: "6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!."— Presentation transcript:

1 6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!

2 이 장에서 다룰 내용 단순 for 문 1 2 중첩 for 문 그 외 for 문에 관한 이야기 3

3 01_단순 for 문 반복문 특정 문장을 반복하게 만들어 주는 것 주로 for 문과 while 문 사용

4 [기본예제 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 }

5 [기본예제 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 문 사용

6 01_단순 for 문

7 01_단순 for 문 for 문의 기본 형식

8 01_단순 for 문 for 문의 개념 이해와 표현 방식

9 01_단순 for 문 for 문의 동작 과정

10 01_단순 for 문 반복 실행할 문장이 2개 이상이면 블록 사용

11 [기본예제 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 문에 블록을 사용하지 않은 경우

12 [기본예제 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씩 줄여가며 출력

13 [기본예제 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씩 줄이면서 출력

14 [기본예제 6-6] for 문을 사용하지 않은 덧셈
01 #include <stdio.h> 02 03 int main() 04 { 05 int hap; 06 07 hap = ; 08 09 printf(" 1에서 10까지의 합: %d \n", hap); 10 } hap 변수에 1~10 더하기

15 [기본예제 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; //hap +=i; 10 } 11 12 printf(" 1에서 10까지의 합: %d \n", hap); 13 } 값을 누적할 변수 선언 1~10까지 변할 변수 선언 1~10까지 반복 hap에 누적시킴

16 01_단순 for 문 쓰레기(garbage) 값의 이해
변수 안에 이미 다른 값이 있는 상태로 연산을 수행함으로써 비정상적인 결과 값 출력 프로그램 내에서 변수가 초기화되지 않은 것이 원인 누적값을 표현하는 변수의 초기화를 수행함으로써 문제 해결 int hap = 0;

17 [기본예제 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 } 누적할 변수를 초기화 함

18 01_단순 for 문 변수 i와 hap의 변화

19 [응용예제 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

20 01_단순 for 문

21 [기본예제 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부터 입력받은 최종값까지 반복하며 값을 더하기

22 응용예제 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 문에 사용

23 [기본예제 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까지 반복하며 구구단 출력

24 01_단순 for 문

25 02_중첩 for 문 중첩 for 문의 개념 for 문 내부에 또 다른 for 문이 들어있는 형태
총 반복 횟수 = 바깥 for 문 횟수 x 안쪽 for 문

26 02_중첩 for 문 중첩 for 문의 동작

27 [기본예제 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 { printf("중첩 for 문입니다. (i값: %d, k값: %d)\n", i, k); 12 } 13 } 14 } 반복할 변수 i, k 선언 바깥 3회 반복 내부 2회 반복 i, k 값 총 6번 출력

28 02_중첩 for 문 중첩 for 문에서의 i와 k 값의 변화

29 02_중첩 for 문

30 02_중첩 for 문 중첩 for 문을 활용한 구구단 출력(세로 방향)

31 [기본예제 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 { 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까지의 뒷자리 숫자 반복 구구단 출력 각 단마다 한 줄 띄움

32 02_중첩 for 문

33 02_중첩 for 문 중첩 for 문을 활용한 구구단 출력(가로 방향)

34 [기본예제 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 { printf("%2dX%2d=%2d", [ ① ] ); 12 } 13 printf("\n"); 14 } 15 } 1~9까지의 뒷자리 숫자 반복 2~9단까지 반복 k, i, k*i 각 단별로 한 줄씩 출력 한 줄 띄움

35 03_그 외에 for 문에 관한 이야기 여러 개의 초기값과 증감식 사용하는 for 문 초기값과 증감식이 없는 for 문
초기값이 하나일 필요 없음 초기값이 여러 개일 때는 콤마로 구분 증감식도 하나 이상 사용 가능 초기값과 증감식이 없는 for 문 세 가지 형식 모두 결과가 같음 for ( 초기식 1, 초기식 2 ; 조건식 ; 증감식 1, 증감식 2 )

36 03_그 외의 for 문에 관한 이야기 초기식이 없더라도 그 자리는 반드시 세미콜론(;)으로 구분 ①번과 ③번 소스의 비교

37 [기본예제 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개

38 03_그 외의 for 문에 관한 이야기 무한루프 for 문에서 초기값, 조건식, 증감식을 모두 지운 형태
사용자가 어떤 작업을 계속 반복하고자 할 때 사용 사용자가 Ctrl+C 키를 눌러야 중단됨

39 [기본예제 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 } 초기값, 조건식, 증감식 없으므로 무한루프를 의미

40 [기본예제 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 무한루프 두 값을 입력받음 출력

41 [예제모음_13] 구구단 출력 예제설명 중첩 for 문을 사용하여 제목과 구구단을 출력하는 프로그램이다. 실행결과

42 예제모음_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 { printf("%2dX%2d=%2d", k, i, k*i); 17 } 18 printf("\n"); 19 } 20 } 제목 출력 2줄 띄움 중첩 for 문으로 구구단 출력

43 [예제모음_14] 아스키 코드표 출력 실행결과 예제설명
for 문과 if 문을 사용하여 0~127번까지 아스키 코드의 10진수, 16진수, 문자를 출력하는 프로그램이다. 실행결과

44 예제모음_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 { printf(" /n"); printf("10진수 16진수 문자 /n"); printf(" /n"); 14 } 15 printf ("%5d %5x %5c\n", i, i, i); 16 } 17 } 0부터 127까지 16행 마다 제목 출력 i 값을 10진수, 16진수, 문자로 출력

45 [예제모음_15] 입력한 문자를 거꾸로 출력 실행결과 예제설명
for 문을 사용하여 입력된 영문자나 숫자를 다시 거꾸로 출력하는 프로그램 실행결과

46 예제모음_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 문자 배열 문자 개수 변수 문자 입력 두 번째 수 입력

47 예제모음_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 } 입력 문자 개수 계산 입력된 개수만큼 거꾸로 출력

48 요약 for 문 중첩 for 문 반복해야 할 문장을 원하는 만큼 반복 for 문의 형식
{ 반복할 문장들; } for 문 안에 또 다른 for 문이 있는 형태 중첩 for 문의 형식 구구단 계산 및 출력에 많이 쓰임 중첩 for 문 for ( i = 0 ; i < 반복횟수 ; i ++ ) { for ( k = 0 ; k < 반복횟수 ; k++) 반복할 문장들; }

49 요약 for 문의 다른 형태 for 문의 초기값, 조건식, 증감식은 하나 이상 생략 가능

50 IT CookBook for Beginner, C 언어 기초 6장 끝
Thank You ! IT CookBook for Beginner, C 언어 기초 6장 끝


Download ppt "6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!."

Similar presentations


Ads by Google