쉽게 풀어쓴 c 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의...

31
© 2015 생능출판사 All rights reserved CHAPTER 11 조건으로 반복하기

Upload: others

Post on 21-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

CHAPTER 11 조건으로 반복하기

Page 2: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

반복문

Q) 반복 구조는 왜 필요한가?

A) 같은 처리 과정을 되풀이하는 것이 필요하기 때문이다. 학생

30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야

한다.

Page 3: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 #include <stdio.h>

int main(void)

{

printf("환영합니다. ");

printf("환영합니다. ");

printf("환영합니다. ");

printf("환영합니다. ");

printf("환영합니다. ");

return 0;

}

환영합니다.

환영합니다.

환영합니다.

환영합니다.

환영합니다.

같은 처리가 반복된다.

Page 4: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

반복문의 종류

Page 5: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

스크래치에서의 반복문

Page 6: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

스크래치 포탄궤적

Page 7: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

while 문

while 문은 어떤 조건을 정해놓고 반복을 하는 구조

Page 8: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

while 문의 구조

Page 9: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

기본 예제 #include <stdio.h>

int main(void)

{

int i = 0;

while (i < 5)

{

printf ("환영합니다. ");

i++;

}

printf ("반복이 종료되었습니다. ");

return 0;

}

환영합니다.

환영합니다.

환영합니다.

환영합니다.

환영합니다.

반복이 종료되었습니다.

Page 10: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 0부터 9까지 출력

0, 1, 2, ..,, 9까지를 차례대로 화면에 출력하는 프로그램을 작성하여

보자.

Page 11: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 0;

while (i < 10)

{

printf ("%d ", i);

i++;

}

printf(“\n”);

return 0;

}

Page 12: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: (1+2+...+9+10) 계산

(1+2+...+9+10)의 값을 계산하는 프로그램을 작성하여 보자.

Page 13: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 1;

int sum = 0;

while (i <= 10)

{

sum = sum + i;

i++;

}

printf("합계=%d\n", sum);

return 0;

}

Page 14: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 팩토리얼 계산

팩토리얼을 계산하는 프로그램을 작성하여 보자. 팩토리얼 n!은 1부터 n까지의 정수를 모두 곱한 것을 의미한다.

Page 15: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 1;

int factorial = 1;

while (i <= 10)

{

factorial = factorial * i;

i++;

}

printf ("10!은 %d입니다. \n", factorial);

return 0;

}

Page 16: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 구구단 출력

구구단 중에서 3단을 반복문을 이용하여 출력하여 보자. 3*1, 3*2,

3*3, .., 3*9까지 9번 반복시키면 출력하면 될 것이다.

Page 17: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 1;

while (i <= 9)

{

printf("3*%d = %d\n", i, 3*i);

i++;

}

return 0;

}

Page 18: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 최소값 구하기

사용자로부터 받은 정수 중에서 최소값이나 최대값을 찾아 보자.

Page 19: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

#include <limits.h>

int main(void)

{

int number, min_value = INT_MAX;

printf("정수를 입력하시오(종료는 Ctrl+z)\n");

while(scanf("%d", &number) != EOF)

{

if( number < min_value )

min_value = number;

}

printf("최소값은 %d \n", min_value);

return 0;

}

Page 20: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 카운트 다운 프로그램

5->4->3->2->1과 같이 카운트를 하고 카운트가 0이 되면 “발사”라고

화면에 출력한다.

Page 21: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int count;

printf("숫자를 입력하시오: ");

scanf("%d", &count);

while( count > 0 ) {

printf("%d \n", count);

count--;

}

printf("발사! \n");

return 0;

}

Page 22: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 배수의 합 계산

1부터 100사이의 모든 3의 배수의 합을 계산하여 출력하는 프로그램을 반복 구조를 사용하여 작성하라.

Page 23: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int number;

int sum = 0;

number = 1;

while( number <= 100 )

{

if( number %3 == 0 )

sum += number;

number++;

}

printf("1부터 100 사이의 모든 3의 배수의 합은 %d입니다. \n", sum);

return 0;

}

Page 24: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

do-while 문

반복 조건을 루프의 처음이 아니라 루프의 끝에서 검사한다는 것이

다르다.

Page 25: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 기본 예제

do-while 문을 사용하여서 “Hello 10“부터 ”Hello 1“까지를 출력하여

보자.

Page 26: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int i = 10;

do{

printf("Hello %d\n", i);

i = i - 1;

} while (i > 0);

return 0;

}

Page 27: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 0을 입력할 때까지 합계

사용자로부터 양수를 받아서 합계를 한다. 사용자가 0을 입력하면 반복을 중단하고 이제까지의 합계를 화면에 출력한다.

Page 28: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h>

int main(void)

{

int x, sum = 0;

do {

printf("정수를 입력하시오(0이면 종료) : ");

scanf("%d", &x);

sum = sum + x;

} while (x != 0);

printf("정수의 합계 : %d \n", sum);

return 0;

}

Page 29: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

핵심 예제: 신호등 프로그램

예를 들어서 사용자가 신호등의 색상을 나타내는 문자인 ‘r’, ‘y’, ‘g’ 을

입력할 때까지 반복해보자.

Page 30: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

예제 소스 #include <stdio.h> int main (void) { char color; do { printf ("신호등 색상을 입력하세요(r, y, g): "); scanf (" %c", &color); } while (color!='r' && color!='y' && color!='g'); switch (color) { case 'r': printf ("정지! \n"); break; case 'y': printf ("조심! \n"); break; case 'g': printf ("진행! \n"); break; } return (0); }

Page 31: 쉽게 풀어쓴 C 프로그래밍program201701.lucidotech.kr/lesson/chapter_11.pdf · 30명의 평균 성적을 구하려면 같은 과정을 30번 반복하여야 ... 구구단

© 2015 생능출판사 All rights reserved

Q & A