1 제 5 장 제어문. 목차목차 if ~ else switch while do ~ while for continue, break, return goto 연습문제.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
2014 가을학기 계산 입문 연습 #4 지도교수 : 박성우 조교 : 이다훈. Python 을 설치합시다.
변수와 조건문 빛나리 36 호 박승운. 파이썬 쉽게 사용하기 Python IDLE 사용 FILE - New File 로 파일 만들기 Run – Run Module 로 실행하기.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
누구나 즐기는 C언어 콘서트 제5장 조건문.
Power Java 제6장 조건과 반복.
재료수치해석 HW # 박재혁.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
제 4 장 프로그램 제어문 C 프로그래밍.
C 5장. 제어문 #include <stdio.h> int main(void) { int num;
Chapter 7. 조건문.
Chapter09 JavaScript 구구단표 만들기
Chapter 07. 반복문.
C언어 콘서트 제6장 반복문.
어서와 Java는 처음이지! 제3장선택과 반복.
6 반복문의 기본 for 문 여러 번 반복하는 작업은 for 문으로!.
7 while 문의 흐름 제어 조건만 만족한다면 무조건 무한 반복!.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
2주차: 변수, 수식, Control Flow.
Part 07 제어 구조 ©우균, 창병모 © 우균, 창병모.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
3. while문 반복문의 종류 while 문 while( 조건식 )        문장;.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
Chapter 09 반복문.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express Slide 1 (of 27)
MATLAB
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
어서와 C언어는 처음이지 제15장.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
연산자 (Operator).
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
Chapter 03. 주석문과 제어문.
제 5장 제어문 Hello!! C 언어 강성호 김학배 최우영.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
2007 1학기 08 반복문.
Chapter 08. 함수.
17장. 제어문과 내장 함수 제어문 내장 함수 제어문 내장 함수.
8장. 조건에 따른 흐름의 분기. 8장. 조건에 따른 흐름의 분기 8-1 흐름의 분기가 필요한 이유 상황에 따른 프로그램의 유연성 부여 그림 8-1.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
[ 단원 04 ] 반복과 배열.
2nd day Indexing and Slicing
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
에어 PHP 입문.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
Flow Diagram IV While.
C++ 프로그래밍 기초 √ 원리를 알면 IT가 맛있다 3장. 연산자.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
제 22 강 논리식 및 논리 값 shcho.pe.kr.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제어문Control Statements
어서와 C언어는 처음이지 제21장.
6 객체.
Presentation transcript:

1 제 5 장 제어문

목차목차 if ~ else switch while do ~ while for continue, break, return goto 연습문제

3 목차목차 if ~ else 의 개념 흐름도 사용법 다중 if ~ else 다중 if ~ else 흐름도 중첩 if ~ else 조건 연산자를 이용한 if ~ else 구현 주의사항

4 if ~ else 의 개념 – 조건식을 검사하고 참이면 if() 문 수행 – 조건식이 참이면 수행되는 문장은 하나 이상임 – 하나 이상의 문장을 수행하기 위해서는 중괄호가 필요함 예제 간이 예제예 제 if ( 내가 빵이 있으면 ) 너에게 주겠다. if (bread == TRUE) puts( “ 드세요 ” ); if ( 내가 빵이 있으면 ) 먹겠다. else 굶겠다. if (bread == TRUE) puts( “ 냠냠 ” ); elseputs( “ 배고파 ” ); 간이 예제예 제 if ( 내가 빵이 있으면 ) { 1/3 은 먹는다. 1/3 은 저장한다. 1/3 은 버린다. } 물을 먹는다. if (bread == TRUE) { EAT = ON; SAVE = ON; TRASH = ON; } WATER = ON;

5 if ~ else 의 개념 else 가 있는 경우와 else 가 없는 경우 1.else 가 없는 경우 2. else 가 있는 경우 문장 1; if( 조건식 ) 문장 2; 문장 3; 문장 1; if( 조건식 ) 문장 2; else 문장 3; 문장 4;

6 흐름도

7 사용법 한 문장만 수행하는 경우 ( 중괄호를 사용하지 않아도 됨 ) –if(imsi == 5) puts(“right”); –if(imsi == 5) { puts(“right”); } 두 문장 이상 수행하는 경우 ( 중괄호 필수 ) if(imsi == 5) { puts(“FIVE”); puts(“right”); } –if(imsi == 5) { pus(“FIVE”); puts(“right”); } –if(imsi == 5) { puts(“FIVE”); puts(“right”); }

8 다중 if ~ else 문장 1; if( 조건식 1) 문장 2; elseif( 조건식 2) 문장 3; elseif( 조건식 3) 문장 4; else 문장 5; 문장 6;

9 다중 if ~ else 흐름도

10 다중 if ~ else 예제 ( 학점 출력 ) –if((grade >= 90) && (grade <= 100)) puts(“A 학점 ”); elseif((grade >= 80) && (grade < 90)) puts(“B 학점 ”); elseif((grade >= 70) && (grade < 80)) puts(“C 학점 ”); elseif(grade < 70) puts(“F 학점 ”);

11 중첩 if ~ else 중첩 if ~ else 의 개념 –if() 나 else 의 안에 또 다른 if~else 가 존재하는 형태 예제 –if(watch > 2) if(computer > 3) if(USE_memory > 5) puts(“ 좋은 물건 많네 ”); puts(“ 마감시간 입니다.”);

12 중첩 if ~ else 주의사항 (else 의 수행여부 검토 ) –if(watch > 2) if(computer > 3) if(USE_memory > 5) puts(“ 좋은 물건 많네 ”); elseputs(“ 물건 별로 없네.”); 마지막의 else 는 언제 수행되는가 ? –else 는 가장 최근의 if() 와 결합되므로 USE_momory 가 5 보다 클 때 수행됨 – 하지만 중첩 if~else 이기 때문에 watch 나 computer 의 값도 같이 살펴야 함

13 조건 연산자를 이용한 if ~ else 구현 if ~ else 사용조건 연산자 사용 if(x < 0) printf(“%d\n”, x * -1); elseprintf(“%d\n”, x); printf(“%d\n”, (x < 0) : (x * -1) ? x);

14 조건 연산자를 이용한 if ~ else 구현 예제 ( 학점구하기 ) if ~ else –if((score 90)) puts(“A 학점 ”); elseif((score 80)) puts(“B 학점 ”); elseif((score 70)) puts(“C 학점 ”); elseif((score 60)) puts(“D 학점 ”); elseif(score <= 60) puts(“F 학점 ”); 조건 연산자 (score 90) ? puts("A 학점 ") : (score 80) ? puts("B 학점 ") : (score 70) ? puts("C 학점 ") : (score 60) ? puts("D 학점 ") : puts("F 학점 ");

15 예제예제 if ~ else 를 이용한 홀수, 짝수 구하기

16 예제예제

17 주의사항 조건식에서의 주의사항 – 할당과 비교문을 조심해야 함 –if(grade = 95) puts(“ 높은 점수입니다.”); ‘=‘ 은 할당문이기 때문에 if() 의 결과는 항상 참이 되어 grade 의 값에 상관없이 무조건 수행됨 조건식의 결과 값이 ‘0’ 이 아니면 무조건 참 1.if(1) { … } – 무조건 if() 문을 수행 2.if(x) { … } –x 가 0 이 아니면 if() 문 수행 3.if(x > 5) { … } –x 가 5 보다 크면 if() 문 수행 4.if(x++) { … } –x 가 0 이 아니면 if() 문 수행

18 주의사항 else 결합에서의 주의사항 –else 에 있는 puts() 문은 수행되는가 ? –else 의 위에 있는 세 개의 if() 문 중에서 어느 if() 문과 결 합되어 있는가 ?

19 목차목차 switch 의 개념 사용법 주의사항

20 switch 의 개념 다중 if ~ else 의 효과적인 표현 switch() 의 조건식에서는 실수를 사용할 수 없음

21 사용법 switch( 수식 ) { case 상수 1 : 수행문 ; … break; case 상수 1 : 수행문 ; … break; default: 수행문 ; … break; } switch(operator) { case1: puts(“1 번 case”); break; case2: puts(“2 번 case”); break; defaultputs(“error”); }

22 예제예제 입력한 숫자 들에 대한 각 각의 출현 개 수 구하기

23 주의사항 1.switch ~ case 에서의 수식과 상수는 정수만이 올 수 있음 –switch() 에서의 수식은 결과 값이 정수여야 함 – 부동 소주점이나 문자열은 switch() 의 수식문에 올 수 없음  switch(5.5), switch(5.0), switch(7.7)( 사용될 수 없음 )  switch(“imsi”), switch(“576”)( 사용될 수 없음 )

24 주의사항 break 문을 조심하지 않으면 논리에러가 발생할 수 있음

25 목차목차 사용법 흐름도 예제 주의사항

26 사용법 간이 예제예 제 while( 조건식 ) 수행문 ; i = 1; while(i <= 10) printf(“%d\n”, i++); while( 조건식 ) { 수행문 ; … } i = 1; while(i <= 10) { printf(“%d\n”, i); i++; }

27 흐름도

28 예제예제 1 부터 100 까지 더하기

29 예제예제 문자열 암호화

30 예제예제 단어 자르기

31 주의사항 회전 수 i = 0;i = 0; while(i < 10)while(i <= 10) { … }{ … } while() 이 10 번 회전 while() 이 11 번 회전

32 목차목차 사용법 흐름도 예제

33 사용법 간이 예제예 제 do 수행문 ; while ( 조건식 ); intnum = 1; doprintf(“num = %d\n”, num++); while (num != 1024); do{ 수행문 ; … } while( 조건식 ); do{ puts(“=== menu ===”); puts(“1. 짜장면 ”); puts(“2. 짬뽕 ”); scanf(“%d”, &num); … } while(num != 0);

34 흐름도

35 예제예제 메뉴선택

36 예제예제 itoa() 함수 만들기 ( 숫자를 입력하 면 문자열로 변 경한다.)

37 목차목차 사용법 흐름도 수행순서 초기식, 조건식, 증감식 for() 와 while() 중 어느 것을 선택해야 하나 ? for() 와 while() 비교 중첩 for() 쉼표연산자와 for() 예제 for() 문 종합예제 주의사항

38 사용법 간이 예제예 제 for( 초기식 ; 조건식 ; 증감식 ) 수행 문 ; for(i = 1;i <= 10;i++) printf(“%d “, i); for( 초기식 ; 조건식 ; 증감식 ) 수행문 ; sum = 0; for(i = 1;i <= 10;i++) sum += i; for( 초기식 ; 조건식 ; 증감식 ) { 수행문 ; … } for(i = 1;i <= 100;i++) { printf(“%d “, i); if(i % 10 == 0) putchar(‘\n’); }

39 흐름도

40 for() 문의 수행순서 for( 초기식① ; 조건식② ; 증감식④ ) { ③ } 1, 2, 3, 4, 2, 3, 4, 2, 3, 4 …

41 for() 문의 수행순서 for(i = 0;i < 10;i++) { … } –i 에 0 을 할당한다. (i = 0) –i 가 10 보다 작은지를 비교한다. (i < 10) – 참이면 for() 문을 수행하고 거짓이면 for() 문을 빠져 나간다. (i 의 값은 0 이므로 참이다.) –for() 문에 걸리는 본체를 수행한다. ( 중괄호 부분 ) –i 의 값을 증가 시킨다. (i++) : i 는 이제 0 에서 1 이 된다. –i 가 10 보다 작은지를 비교한다. (i < 10) : i 는 1 이므로 참이다. – 참이면 for() 문을 수행하고 거짓이면 for() 문을 빠져 나간다. –for() 문에 걸리는 본체를 수행한다. –i 의 값을 1 증가 시킨다. (i++) : i 는 이제 1 에서 2 가 된다. –…

42 초기식, 조건식, 증감식 –for( 초기식 ; 조건식 ; 증감식 ) 초기식 –for() 문을 수행할 때 가장 먼저 수행되는 것은 초기식과 조건식이 며 이 둘 중에서도 먼저 수행 됨 –for() 문에 사용되는 변수의 초기 값을 지정함 i = 0 j = 1024 count = -25 ch = ‘a’ big = 2.5

43 초기식, 조건식, 증감식 조건식 – 조건식은 검사 대상의 참, 거짓을 판별하기 위하여 사용하며 참일 때는 for() 문을 수행하지만 거짓일 때는 for() 문을 더 이상 수행하지 않음 – 조건식은 for() 문의 수행 여부를 결정해야 하므로 초기식 바로 다음에 수행 – 조건식에 올 수 있는 것은 참과 거짓을 구별하는 내용이므로 다음과 같은 것들이 모두 올 수 있다. i < j i == j ch == ‘a’ ch != ‘x’ strcmp(imsi, “right”) 증감식 i++ i += 5 j--

44 초기식, 조건식, 증감식 증감식 i++ i += 5 j--

45 for() 와 while() 중 어느 것을 선택해 야 하나 ? for() 는 회전 횟수가 정해진 곳에서 사용하 며 while() 은 회전 횟수가 정해지지 않은 곳 에서 사용함 확실한 범위를 알면 for() 문을 사용하고 그 렇지 않으면 while() 을 사용함

46 for() 와 while() 중 어느 것을 선택해 야 하나 ? for() 를 사용하는 경우 for(i = 0 ; i < 10 ; i++) –10 번 회전한다는 것을 미리 알았으므로 for() 를 사용함 for(j = 10 ; j < 270 ; j += 2) –10 부터 270 이라는 정확한 범위를 알았으므로 for() 문을 사용함.

47 for() 와 while() 중 어느 것을 선택해 야 하나 ? while() 을 사용하는 경우 while(ch != 'n') { … ch = getchar(); } –ch 가 ‘n’ 이 아닐 동안 이므로 몇 번 회전할 지 알 수 없으므로 while() 을 사용함 while(strcmp(warning, "red")) { … } –warning 이 ‘red’ 가 아닐 동안 회전해야 하므로 몇 번 회전할지 알 수 없으므로 while() 이 사용됨

48 for(), while() 의 비교 –for() 에는 초기식과 조건식, 증감식을 한 라인에 사용하지만 while() 은 세 라인으로 나뉘어 짐 –for() 문이 한 라인에 초기치와 증감치 조건식이 몰려 있기 때문에 분석이 용이함 –for() 문에서 초기값 설정이나 조건식, 증감식의 생략은 가능하나 while() 은 불가능함 for() 문 사용 while() 문 사용 for(i = 0 ; i < 10 ; i++) { … }i = 0; while(i < 10) { … i++; }

49 중첩 for() for() 문 안에 또 다른 for() 문이 존재하는 경 우 for(i = 0;i < 5;i++) for(j = 0;j < 7;j++) printf(“%d, %d\n”, i, j);

50 사용법

51 쉽표 연산자와 for() 쉼표 연산자를 사용하지 않은 경우 쉼표 연산자를 사용한 경우

52 예제예제 1 부터 100 까지의 숫자 중 짝수만 출력하기

53 예제예제 구구단 출력

54 for() 문 종합문제

55 목차목차 continue break return –break, continue 는 반복문의 제어를 이동 시킬 때 사용하며 return 은 함수를 끝낼 때 사용 함.

56 continue 반복문의 처음으로 제어권을 넘김

57 예제예제 continue ( 짝수 출력 )

58 break 반복문을 빠져 나 감

59 return 함수의 수행을 끝내고 호출한 쪽으로 제어권을 넘김 return 100; return 100 * 1024; return x* y; return &imsi; return imsi[0];

60 목차목차 goto 의 개념 사용법 전문가들도 추천하는 사용처 예제

61 goto 의 개념 프로그램에서 보기 힘든 제어문 중의 하나 goto 문은 논리적인 흐름을 깨트릴 수 있어 서 대부분의 책들이 goto 문의 폐단에 집중 되어 있음 하지만 시스템 프로그램에서는 종종 사용 되는 것을 볼 수 있음

62 사용법 gotolabel; … label: goto 다음에 옮겨갈 장소를 적음 label 옆은 세미콜론이 아니라 콜론임에 유 의 다른 함수로의 분기는 불가능함

63 사용법

64 전문가들도 추천하는 사용처 – 다중 for() 나 while() 을 한번에 빠져나감

65 예제예제 컴퓨터가 생 각하는 숫자 맞추기

부터 1000 까지의 합을 구하는 프로그램을 작성하시오. 2. 구구단을 출력하는 프로그램을 작성하시오. (2 단부터 9 단까지 ) 출력 :2 x 1 = 2 2 x 2 = 4 … 3.1 부터 12 까지의 수 중에서 하나를 입력 받고 이에 해당 하는 달을 영어로 출력하시오. 입력 :8 출력 :August

67 4. 국어, 영어, 수학 점수를 입력 받고 총점과 평균을 구하 는 프로그램을 작성하시오. 입력 : 출력 : 국어 영어 수학 총점 평균 =================== 사용자에게 하나의 정수를 입력 받고 그에 해당하는 배 수를 출력하시오. ( 범위 :1 부터 100 사이 ) 입력 :8 출력 : … 사용자로부터 문자열을 받아들이고 그 문자열의 길이를 출력하시오. 입력 :I am archie. 출력 :12

68 1. 사용자로부터 하나의 정수 값을 입력 받고 그 정수 값에 해당하는 구구단을 출력하는 프로그램을 작성하시오. 입력 :7 출력 :7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 … 2. 문자열 ( 영어 알파벳 ) 을 입력 받고 문자가 출현한 횟수를 구하는 프로그램을 작성하시오. 입력 :oaudfanwetrnlrgeoparhaeo 출력 :[a] : 3 번 출현 [b] : 0 번 출현 …

69 3. 문자열을 입력 받고 문자열 중에서 영어 알파벳이 아닌 것을 빼고 출력하시오. 입력 :I love77 you. Really? 출력 :I love you Really

사람에 대한 국어, 영어, 수학 점수를 입력 받고 다음과 같이 그래프로 표현하시오. ( 별 하나는 5 점이며 10 개의 별마다 스페이스 추가 ) 입력 : … 출력 : 국어 영어 수학 총점 평균 =================== ********** ***** ********** ** …

71 2. 사칙 연산을 하는 프로그램을 작성하시오. ( 단, 우선순위는 없으며 앞에서부터 처리 ) 입력 :5 + 3 * 7 출력 :56// 만약 우선순위를 처 리한다면 105 가 출력된다. // 할 수 있다면 우선순 위의 개념을 넣어보자. // 이때는 스택의 개념 이 필요하다 개의 정수 값을 받아 들이고 이중에서 가장 큰 수와 가장 작은 수를 출력하시오.