Presentation is loading. Please wait.

Presentation is loading. Please wait.

제어문Control Statements

Similar presentations


Presentation on theme: "제어문Control Statements"— Presentation transcript:

1 제어문Control Statements
반복문Iteration statements 반복문은 지정된 조건식에 만족하는 동안 계속해서 반복을 수행 반복문의 종류로는 for문, while문, 그리고 do~while문 등이 있다 도서출판 한산

2 제어문Control Statements
for문 for문은 조건식의 값이 참인 경우 계속해서 반복을 수행하다가 거짓이 되면 for{ }를 빠져 나오게 된다 for문은 반복문 중에서도 많은 프로그래머들이 자주 사용하는 형식이기 때문에 반드시 활용 방법에 익숙해질 필요성이 있다 for문의 형식은: 형 식 설 명 for(초기값; 조건식; 증감식) { 실행문 1; 실행문 2; ••• } - for문은 먼저 초기값이 실행된다. - 초기값은 반복문을 실행하기 전에 단 한번만 사용 하게 되며 조건식의 값과 비교하여 그 평가 값이 참인지 거짓인지를 판별하게 된다. - 만약 조건식에 의한 판별 평가 값이 참이면 for{ } 내의 실행문들을 수행하게 되며 거짓이면 for{ }를 빠져 나오게 된다. - 증감식은 판별에 의한 평가 값을 증가 또는 감소시 키는 역할을 한다. - 참고로, for문의 조건 뒤에는 세미콜론( ; )을 붙 이지 않는다. [예시] for(초기값; 조건식; 증감식); 도서출판 한산

3 제어문Control Statements
for문 for문의 실행 순서: 소스코드 실행 순서 ① ② ④ for(i=0; i<2; i++) { 실행문 1; ③ } [STEP 1] ①은 초기값으로 변수 i에 0을 대입하고 있으며 단 한 번만 실행하게 된다. [STEP 2] 초기값 0을 조건식 ②에서 비교 판단하게 된다. 이때, 초기값 0은 3보다 작기 때문에 판별 결과가 참이므로 for{ } 내의 ③의 실행문 1을 수행하게 된다. [STEP 3] ③의 실행문 1을 수행하고 ④로 이동하여 변수 i의 값을 1증가 시킨다. 즉, i++는 i=i+1과 같은 의미이기 때문이다. 따라서 i의 값은 0에서 1로 증가하게 된다. 도서출판 한산

4 제어문Control Statements
for문 for문의 실행 순서: [STEP 4] 증가된 1의 값은 ②에서 다시 한 번 비교 판단을 하게 된다. 증가된 값 1은 2보다 작기 때문에 판별 결과가 참이므로 또 다시 for{ } 내의 ③의 실행문 1을 실행하게 된다. [STEP 5] [STEP 3]의 방법에 따르면 변수 i의 값은 1에서 2로 증가하게 된다. [STEP 6] 증가된 2의 값은 ②의 조건식인 i<2에 거짓이기 때문에 for{ }를 빠져 나가게 된다. 도서출판 한산

5 제어문Control Statements
for문 for문의 흐름도: 도서출판 한산

6 제어문Control Statements
예제 "초기값 1부터 5까지의 값을 출력"하는 프로그램 1: #include <stdio.h> 2: 3: mian() 4: { 5: int x; 6: 7: for(x=1; x<=5; x++) 8: { 9: printf("PRT1: %d, ∖n", x); 10: } 11: } [ 흐름도 ] 도서출판 한산

7 제어문Control Statements
예제 "초기값 5부터 1까지의 값을 출력"하는 프로그램 1: #include <stdio.h> 2: 3: mian() 4: { 5: int x; 6: 7: for(x=5; x>=1; x--) 8: { 9: printf("PRT1: %d, ∖n", x); 10: } 11: } [ 흐름도 ] 도서출판 한산

8 제어문Control Statements
예제 "1부터 10까지 중에 홀수만의 누적 합을 구하여 출력"하는 프로그램 1: #include <stdio.h> 2: 3: mian() 4: { 5: int x, add; 6: 7: add=0; 8: 9: for(x=1; x<=10; x+=2) 10: { 11: add+=x; 12: } 13: printf("PRT1:홀수총합:%d이다.∖n", add); 14:} [ 흐름도 ] 도서출판 한산

9 제어문Control Statements
예제 양의 정수 1에서 n까지의 총 합을 구하는 프로그램 1: #include <stdio.h> 2: 3: mian() 4: { 5: int x, n, add=0; 6: 7: printf("n의 정수 값을 입력하시오∖n"); 8: scanf("%d", &n); 9: 10: for(x=1; x<=n; x++) 11: { 12: add+=x; // add=add+x;와 같다. 13: } 14: printf("PRT1: %d까지의 총합은 %d이다.∖n", n, add); 15: } [변수 n에 10을 입력한 경우] [변수 n에 100을 입력한 경우] [ 흐름도 ] 도서출판 한산

10 제어문Control Statements
예제 알파벳 a부터 입력된 알파벳까지 출력 가능한 프로그램 1: #include <stdio.h> 2: 3: mian() 4: { 5: char n, x; 6: 7: printf("알파벳을 입력하시오∖n"); 8: scanf("%c", &n); 9: 10: for(x='a'; x<=n; x++) 11: { 12: printf("%c ", x); 13: } 14: printf("∖n"); 15: } [알파벳 f를 을 입력한 경우] [알파벳 m을 입력한 경우] [ 흐름도 ] 도서출판 한산

11 제어문Control Statements
❏ 그 밖의 for문의 유형 for문 형식의 구성을 변형시켜도 문제가 되지 않는 몇 가지 유형에 대해서 알아보자 for문을 이용한 무한 루프의 경우 for문의 형식에서 조건식을 생략 for문의 형식에서 모든 조건을 생략 for( x=0; ;x++ ) { 실행문; } for( ; ; ) 초기값과 증감식이 생략된 경우 초기값을 for{ } 이전에 초기화 for문의 실행 블록에 증감식을 기입 int x=0; for( ; x<=50; x++ ) { 실행문; } for( x=0; x<=50; ) x++; 도서출판 한산

12 제어문Control Statements
중첩 for문 중첩 for문이란 for{ }의 중괄호인 실행 블록 내에 또 다른 for문들을 사용하는 것 중첩 for문의 형식은: 형 식 설 명 // 바깥쪽 for문 for(초기값; 조건식; 증감식) { // 안쪽 for문 실행문 1; 실행문 2; } [STEP1] 바깥쪽 for문에서 초기값부터 실행한다. [STEP2] 조건식의 값과 비교하여 그 평가 값이 참이 면 안쪽 for문의 초기값을 실행한다. [STEP3] 안쪽 for문의 조건식이 참이면 안쪽 for문의 실행 블록 내의 실행문 1과 실행문 2를 수행 한다. [STEP4] 안쪽 for문의 증감식에 의한 값을 [STEP3]과 같이 수행한다. [STEP5] 안쪽 for문의 조건식 판별 결과가 거짓이 될 때까지 [STEP3]과 [STEP4]를 반복 수행한 다. [STEP6] 안쪽 for문의 조건식에 따른 판별 결과가 거 짓이면 바깥쪽 for문의 증감식으로 이동하여 얻은 값을 조건식에서 참 또는 거짓의 판별 을 하게 된다. [STEP7] 만약, 바깥쪽 for문의 조건식이 참이면 [STEP2]부터 [STEP6]까지를 재차 수행 하게 되며, 거짓이면 바깥쪽 for문에서 완전히 빠 져 나가 순차적 처리에 의해서 그 다음 단계의 실행을 하게 된다. 도서출판 한산

13 제어문Control Statements
중첩 for문의 흐름도 도서출판 한산

14 제어문Control Statements
예제 "1단부터 3단까지의 구구단을 출력할 수 있는 프로그램" 1: #include <stdio.h> 2: 3: mian() 4: { 5: int x, y; 6: 7: for(x=1; x<=3; x++) 8: { 9: for(y=1; y<=9; y++) 10: { 11: printf("%4d", x*y); 12: } 13: printf("∖n"); 14: } 15: } [구구단 3단까지 실행결과] [ 흐름도 ] 도서출판 한산

15 제어문Control Statements
while문 while문도 for문과 마찬가지로 조건식의 평가 결과 값이 참인 경우 계속해서 반복을 수행하다가 거짓이 되면 while{ }를 빠져 나오게 된다 중첩 for문의 형식은: 형 식 설 명 while(조건식) { 실행문 1; 실행문 2; } 실행문 3; while문의 조건식이 참인 경우 while문의 실행 내 용인 실행문 1과 실행문 2를 수행 하게 된다. 만약 조건식의 판단 결과가 거짓이 되면 중괄호 { }를 건너뛰고 실행문 3을 수행하 게 된다. 도서출판 한산

16 제어문Control Statements
while문의 흐름도 도서출판 한산

17 제어문Control Statements
예제 "알파벳 A부터 K까지 출력 가능한 프로그램" 1: #include <stdio.h> 2: 3: mian() 4: { 5: char x='A', y='K'; 6: 7: while(x<=y) 8: { 9: printf("%3c", x); 10: x++; 11: } 12: printf("∖n"); 13: } [실행결과] [ 흐름도 ] 도서출판 한산

18 제어문Control Statements
예제 "정수 1부터 키보드를 통해 입력된 값까지 총 합" 1: #include <stdio.h> 2: 3: mian() 4: { 5: int x=1, y, add=0; 6: 7: printf("정수를 입력하시오∖n"); 8: scanf("%d", &y); 9: 10: while(x <= y) 11: { 12: add+=x; 13: x++; 14: } 15: printf("총합은 %d이다.∖n", add); 16: } [실행결과] [ 흐름도 ] 도서출판 한산

19 제어문Control Statements
예제 "한 문자씩 입력하다가 엔터키를 누르면 입력한 모든 문자들을 모니터에 출력" 1: #include <stdio.h> 2: 3: mian() 4: { 5: char munja; 6: 7: printf("한 문자씩 입력하세요∖n"); 8: while((munja=getchar()) != '∖n') 9: { 10: putchar(munja); 11: } 12: printf("∖n"); 13: } [실행결과] [ 흐름도 ] 도서출판 한산

20 제어문Control Statements
예제 while문의 경우에 있어서 무한 반복으로 실행 1: #include <stdio.h> 2: 3: mian() 4: { 5: int x=0; 6: 7: while(1) 8: { 9: printf("현재 %d 번째 반복 중.∖n",x++); 10: } 11: } [실행결과] [ 흐름도 ] 도서출판 한산

21 제어문Control Statements
do~while문 do~while문은 while문과 매우 유사하지만 순차적 처리에 의해서 먼저 실행문을 수행 그 후에 while문의 조건식을 판별하여 그 결과에 따라서 재차 실행문을 수행할 것인가를 결정 do~while 문의 형식은: 형 식 설 명 do { 실행문 1; 실행문 2; } while(조건식); 실행문 3; 순차적 처리에 의해서 do{ } 내의 실행문 1과 실행 문 2를 수행한다. 그리고 while문의 조건식을 판별 하여 그 결과가 참인 경우 do{ } 내의 실행문 1과 실행문 2를 재차 수행하 게 된다. 만약 while문의 조건식을 판별하여 결과가 거짓이 면 while문을 빠져나와서 실행문 3을 실행하게 된 다. do~while문의 경우는 while(조건문) 다음에 반드시 세미콜론(;)을 붙여서 while(조건문); 과 같이 표현 한다. 도서출판 한산

22 제어문Control Statements
do~while문의 흐름도 도서출판 한산

23 제어문Control Statements
예제 "정수 1부터 키보드를 통해 입력된 값까지 총 합"을 구하는 프로그램 1: #include <stdio.h> 2: 3: mian() 4: { 5: int x=1, y, add=0; 6: 7: printf("정수를 입력하시오∖n"); 8: scanf("%d", &y); 9: 10: do 11: { 12: add+=x; 13: x++; 14: } while(x <= y); 15: printf("총합은 %d이다.∖n", add); 16: } [변수 y에 10을 입력한 경우] [ 흐름도 ] 도서출판 한산

24 제어문Control Statements
예제 "알파벳 A부터 K까지 출력 가능한 프로그램" 1: #include <stdio.h> 2: 3: mian() 4: { 5: char x='A', y='K'; 6: 7: do 8: { 9: printf("%3c", x); 10: x++; 11: } while(x <= y); 12: printf("∖n"); 13: } [실행결과] [ 흐름도 ] 도서출판 한산

25 제어문Control Statements
분기문branching statements 분기문은 제어의 흐름을 지정된 조건에 따라서 여러 방향으로 이동시켜 처리하는 구문으로 break, continue, 그리고 goto문으로 나누어 살펴 볼 수 있다 break문 break문은 switch~case문에서도 학습한 적이 있듯이 주로 반복문에서 반복 실행 도중에 강제적으로 반복을 멈추고 해당문을 빠져 나올 때 사용 중첩된 반복문에 강제적으로 빠져나올 경우는 중첩된 반복문의 수만큼 break문이 필요하게 된다 형 식 설 명 // 반복문 for, while, do~while, 그리고 // switch문에서 주로 사용된다. 반복문(조건식) { 실행문 1; 실행문 2; break; } 실행문 3; - 반복문(for, while 등)에서 실행문 1과 실행문 2를 반복 실행하다가 break문을 만나게 되면 프로그램의 흐름이 강제적으 로 종료되면서 순차적 처리에 의해서 다 음 단계인 실행문 3으로 이동하여 처리하 게 된다. 도서출판 한산

26 제어문Control Statements
break문의 실행과정 흐름도 도서출판 한산

27 제어문Control Statements
예제 break문 1: #include <stdio.h> 2: 3: mian() 4: { 5: char x; 6: 7: for(x='A'; x<'Z'; x++) 8: { 9: printf("%c ∖n", x); 10: if(x=='D') 11: { 12: break; 13: } 14: } 15: } [실행결과] [ 흐름도 ] 도서출판 한산

28 제어문Control Statements
continue문 continue문은 반복문에서만 사용되며 switch~case문에서는 사용하지 않는다 반복문에서 반복 실행을 하다가 continue문을 만나게 되면 이후의 실행문를 수행하지 않고 반복문의 조건식으로 이동하게 된다 형 식 설 명 반복문(조건식) { 실행문 1; continue; 실행문 2; } 반복문(for, while 등)을 실행하면서 continue를 만나게 되면 continue 이후의 실행문 2를 수행하지 않고 반복문의 조건식으로 이동하게 된다. 도서출판 한산

29 제어문Control Statements
continue문의 실행과정 흐름도 도서출판 한산

30 제어문Control Statements
예제 continue의 예제 1: #include <stdio.h> 2: 3: mian() 4: { 5: int x; 6: 7: for(x=1; x<10; x+=2) 8: { 9: if(x==7) 10: { 11: continue; 12: } 13: else 14: { 15: printf("x=%d∖n", x); 16: } 17: } 18: } [실행결과] [ 흐름도 ] 도서출판 한산

31 Q&A Thank you. 도서출판 한산


Download ppt "제어문Control Statements"

Similar presentations


Ads by Google