Presentation is loading. Please wait.

Presentation is loading. Please wait.

쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)

Similar presentations


Presentation on theme: "쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)"— Presentation transcript:

1 쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)

2 반복문 Q) 반복 구조는 왜 필요한가? A) 같은 처리 과정을 되풀이하는 것이 필요하기 때문이다. 학생 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 한다. Slide 2 (of 27)

3 while 문 주어진 조건이 만족되는 동안 문장들을 반복 실행한다. while( 조건식 )        문장; Slide 3 (of 27)

4 반복문의 실행 과정 Slide 4 (of 27)

5 반복문의 실행 과정 반복횟수 i의 값 i< 3 반복여부 첫번째 반복(시작위치) 참(1) 반복 두번째 반복(시작위치) 1
참(1) 반복 두번째 반복(시작위치) 1 세번째 반복(시작위치) 2 네번째 반복(시작위치) 3 거짓(0) 중지 Slide 5 (of 27)

6 예제 // while 문을 이용한 구구단 출력 프로그램 #include <stdio.h> int main(void)
{         int n;         int i = 1;         printf("구구단 중에서 출력하고 싶은 단을 입력하시오: ");         scanf("%d", &n);         while (i <= 9)         {                 printf("%d*%d = %d \n", n, i, n*i);                 i++;         }                          return 0; } 구구단 중에서 출력하고 싶은 단을 입력하시오: 9 9*1 = 9 9*2 = 18 9*3 = 27 .... 9*9 = 81 Slide 6 (of 27)

7 예제 #include <stdio.h> int main(void) { int i, n, sum; // 변수 선언
                 printf("정수를 입력하시오:");  // 입력 안내 메시지 출력         scanf("%d", &n);             // 정수값 입력         i = 1;                          // 변수 초기화         sum = 0;         while(i <= n)         {                 sum += i;              // sum = sum + i;와 같다.                 i++;                    // i = i + 1과 같다.         }         printf("1부터 %d까지의 합은 %d입니다\n", n, sum);         return 0; } 정수를 입력하시오: 3 1부터 3까지의 합은 6입니다 Slide 7 (of 27)

8 do...while문 반복 조건을 루프의 끝에서 검사 do 문장 while(조건) ① 문장들이 실행된다.
      문장 while(조건) ① 문장들이 실행된다. ② 조건식이 계산된다. ③ 결과가 참이면 ①로 돌아간다. ④ 결과가 거짓이면 종료된다. Slide 8 (of 27)

9 예제 // do..while 문을 이용한 메뉴 1---새로만들기 #include <stdio.h> 2---파일열기
int main(void) {         int i = 0;         do         {                 printf("1---새로만들기\n");                 printf("2---파일열기\n");                 printf("3---파일닫기\n");                 printf("하나를 선택하시요.\n");                 scanf("%d", &i);         } while(i < 1 || i > 3);                  printf("선택된 메뉴=%d\n",i);         return 0; } 1---새로만들기 2---파일열기 3---파일닫기 하나를 선택하시요. 1 선택된 메뉴=1 Slide 9 (of 27)

10 글자 게임 예제 // 반복을 이용한 글자 게임 프로그램 #include <stdio.h>
//  반복을 이용한 글자 게임 프로그램 #include <stdio.h> int main(void) {         char answer = 'm'         char guess;         int tries = 0;                  do         {                 printf("정답을 추측하여 보시오: ");                 scanf(" %c", &guess);                 tries++;          if( guess > answer )                         printf("제시한 문자의 아스키 코드 값이 높습니다.\n");                 if( guess < answer )                         printf("제시한 문자의 아스키 코드값이 낮습니다.\n");         }         while(guess != answer);         printf("축하합니다. 시도횟수=%d \n", tries);         return 0; } 정답을 추측하여 보시오: a 제시한 문자의 아스키 코드값이 낮습니다. 정답을 추측하여 보시오: s 제시한 문자의 아스키 코드값이 높습니다. 정답을 추측하여 보시오: b 정답을 추측하여 보시오: z 정답을 추측하여 보시오: m 축하합니다. 시도횟수=5 Slide 10 (of 27)

11 for 루프 정해진 횟수만큼 반복하는 구조 Slide 11 (of 27)

12 for 문의 구조 for ( 초기화; 조건식; 증감식) 문장; ① 초기화를 실행한다.
      문장; ① 초기화를 실행한다. ② 반복 조건을 나타내는 조건식을 계산한다. ③ 수식의 값이 거짓이면 for 문의 실행이 종료된다. ④ 수식의 값이 참이면 문장이 실행된다. ⑤ 증감을 실행하고 ②로 돌아간다. Slide 12 (of 27)

13 for 문의 구조 int i; for(i = 0; i < 10; i++) printf("Hello World!\n");
Slide 13 (of 27)

14 예제 // 반복을 이용한 정수합 프로그램 #include <stdio.h> int main(void) {
//  반복을 이용한 정수합 프로그램 #include <stdio.h> int main(void) {         int i, sum;         sum = 0;               for(i = 1;i <= 10; i++)                 sum += i;                     // sum = sum + i;와 같음         printf("1부터 10까지의 정수의 합= %d\n",sum);         return 0; } 1부터 10까지의 정수의 합 = 55 Slide 14 (of 27)

15 예제 // 반복을 이용한 세제곱값구하기 정수를 입력하시요:5 #include <stdio.h>
int main(void) {         int i, n;         printf("정수를 입력하시요:");         scanf("%d", &n);         printf("====================\n");         printf("   i       i의 세제곱\n");         for(i = 1;i <= n; i++)                 printf("%5d     %5d\n", i, i*i*i);          return 0; } 정수를 입력하시요:5 ====================    i       i의 세제곱     1         1     2         8     3        27     4        64     5       125 Slide 15 (of 27)

16 예제 // 반복을 이용한 팩토리얼 구하기 #include <stdio.h> int main(void) {
        long fact=1;         int i, n;         printf("정수를 입력하시요:");         scanf("%d", &n);         for(i = 1;i <= n; i++)                 fact = fact * i;         printf("%d!은 %d입니다.\n",n,fact);                return 0; } 정수를 입력하시요: 10 10!은 입니다. Slide 16 (of 27)

17 while 루프와 for 루프와의 관계 Slide 17 (of 27)

18 중첩 반복문 중첩 반복문(nested loop): 반복문 안에 다른 반복문이 위치 Slide 18 (of 27)

19 예제 // 중첩 for 문을 이용하여 *기호를 사각형 모양으로 출력하는 프로그램 #include <stdio.h>
int main(void) {         int x, y;         for(y = 0;y < 5; y++)         {                 for(x = 0;x < 10; x++)                         printf("*");                 printf("\n");         }         return 0; } ********** Slide 19 (of 27)

20 break 문 break 문은 반복 루프를 빠져 나오는데 사용된다. Slide 20 (of 27)

21 예제 // break를 이용하여 무한루프를 탈출한다. #include <stdio.h>
#include <math.h> int main(void) {         double v;         while(1)         {                 printf("실수값을 입력하시오: ");                 scanf("%lf", &v);                 if( v < 0.0 )                         break;                 printf("%f의 제곱근은 %f입니다.\n", v, sqrt(v));         }   return 0; } 실수값을 입력하시오: 9.0 의 제곱근은 입니다. 실수값을 입력하시오: 12.0 의 제곱근은 입니다. 실수값을 입력하시오: 25.0 의 제곱근은 입니다. 실수값을 입력하시오: -1 Slide 21 (of 27)

22 goto문의 사용 #include <stdio.h> int main(void) { int x, y;
        for(y = 1; y < 10000; y++)         {                 for(x = 1; x < 50; x++)                 {                         if( _kbhit() ) goto OUT;                         printf("*");                 }                 printf("\n");         } OUT:         return 0; } Slide 22 (of 27)

23 continue 문 현재의 반복을 중단하고 다음 반복을 시작하게 한다. Slide 23 (of 27)

24 예제 sum = 245 Slide 24 (of 27)

25 예제 // 소문자를 대문자로 변경한다. #include <stdio.h> 소문자를 입력하시오: a
int main(void) {         char letter;         while(1)         {                 printf("소문자를 입력하시오: ");                 scanf(" %c", &letter);                 if( letter == 'Q' )                         break ;                 if( letter < 'a' || letter > 'z' )                         continue ;                 letter -= 32;                 printf("변환된 대문자는 %c입니다.\n", letter);         }         return 0; } 소문자를 입력하시오: a 변환된 대문자는 A입니다. 소문자를 입력하시오: b 변환된 대문자는 B입니다. 소문자를 입력하시오: c 변환된 대문자는 C입니다. 소문자를 입력하시오: Q Slide 25 (of 27)

26 예제 #include <stdio.h> #define START_DAY 3 // 첫번째 날이 수요일
#define DAYS_OF_MONTH      31     // 달의 일수 int main(void) {         int day, date;        printf("=====================\n");         printf("일 월 화 수 목 금 토\n");         printf("=====================\n");         for(day = 0; day < START_DAY ; day++)    // 월요일부터 수요일까지                 printf("   ");                       // 공백 출력         for(date = 1; date <= DAYS_OF_MONTH ; date++)         {                 if( day == 7 )                 {                         day = 0;      // 일요일이면 줄바꿈을 출력                         printf("\n");                 }                 day++;                 printf("%2d ", date);               // 날을 출력한다.         }         printf("\n=====================\n");         return 0; } Slide 26 (of 27)

27 Q & A Slide 27 (of 27)


Download ppt "쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)"

Similar presentations


Ads by Google