Microsoft PowerPoint - chap05-제어문.pptx

Similar documents
Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

untitled

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Chapter_06

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap12-고급기능.pptx

Infinity(∞) Strategy

쉽게 풀어쓴 C 프로그래밍

OCW_C언어 기초

Microsoft PowerPoint - chap-06.pptx

untitled

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

PowerPoint Presentation

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap11-포인터의활용.pptx

1.1.1 컴퓨터의 구성 p.19

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

C프로-3장c03逞풚

C 언어 프로그래밊 과제 풀이

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

K&R2 Reference Manual 번역본

Java ...

C 언어와 프로그래밍 개요

Microsoft PowerPoint - ch03 - 조건문과 반복문 pm0215

PowerPoint Presentation

Microsoft PowerPoint - chap-07.pptx

03장.스택.key

Microsoft PowerPoint - Lesson6.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi


윈도우즈프로그래밍(1)

중간고사

슬라이드 1

untitled

Microsoft PowerPoint - 5장 조건문 pptx


3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - [2009] 02.pptx

OCW_C언어 기초

Microsoft PowerPoint - gnu-w10-c-chap11

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

슬라이드 1

OCW_C언어 기초

4장.문장

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print


Microsoft PowerPoint - Chapter_05.pptx

歯9장.PDF

Microsoft PowerPoint - chap06-1Array.ppt

5.스택(강의자료).key

슬라이드 1

Microsoft PowerPoint - gnu-w10-c-chap12

PowerPoint 프레젠테이션

본 강의에 들어가기 전

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

슬라이드 1

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

PowerPoint 프레젠테이션

컴파일러

PowerPoint 프레젠테이션

C 프로그래밊 개요

PowerPoint 프레젠테이션

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

Microsoft PowerPoint - Chapter_08.pptx

Microsoft PowerPoint - C++ 5 .pptx

C 프로그램의 기본

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

슬라이드 1

Visual Basic 반복문

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

11장 포인터

PowerPoint 프레젠테이션

1.1.1 컴퓨터의 구성 p.19

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

C 프로그래밊 개요

13주-14주proc.PDF

Microsoft PowerPoint - ch07 - 포인터 pm0415

11장 포인터

프로그래밍 및 연습 1

ch08

Tcl의 문법

02장.배열과 클래스

슬라이드 1

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Microsoft PowerPoint - Java7.pptx

PowerPoint 프레젠테이션

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - chap-11.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

C++ Programming

Transcription:

int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다. 인 for, while, do while의 사용 방법과 사용시 주의사항에 대해 알아본다. 분기문인 break, continue, goto, return에 대해 알아본다. 2

목차 if switch for while do while 분기문 break continue goto return 3 제어문(Control Statement) 제어문 : 특정 문장을 수행하거나 수행하지 않도록 선택하거나, 특정 문장을 여러 번 반복 수행하게 만드는 것 제어문의 종류 : if, switch : for, while, do while 분기문 : break, continue, goto, return 4

if 기본적인 if 5 if if의 사용 예 18: /* Ex05_01.c */ int score; printf("점수를 입력하세요 : "); scanf("%d", &score); if( score < 60 ) printf("%d점은 불합격입니다.\n", score); If의 사용 if( score >= 60 ) printf("%d점은 합격입니다.\n", score); If의 사용 6

if 복합문(compound statement) if의 조건식이 참일 때 수행할 문장이 여러 개면, 수행할 문장들을 로 묶어 주어 야 한다. 7 8 if if else

if if else의 사용 예 /* Ex05_02.c */ int score; printf("점수를 입력하세요 : "); scanf("%d", &score); if( score < 60 ) printf("%d점은 불합격입니다.\n", score); else printf("%d점은 합격입니다.\n", score); If else의 사용 9 if 다중 if(1/2) if else문에서 else 다음에 다시 if를 사용 10

if 다중 if(2/2) 중첩된 if : if 안에 다른 if문을 사용 다중 if : 중첩된 if 중에서 if else if의 형태로 작성할 수 있는 if문 여러 가지 조건을 차례차례 검사할 때 유용 중첩된 if 다중 if 11 if 다중 if의 사용 예(1/2) 18: 19: 20: 21: /* Ex05_03.c */ int score; char grade; printf("점수를 입력하세요 : "); scanf("%d", &score); if( score >= 90 ) grade = 'A'; else if( score >= 80 ) grade = 'B'; else if( score >= 70 ) grade = 'C'; else if( score >= 60 ) grade = 'D'; else grade = 'F ; 다중 If 12

if 다중 if의 사용 예(2/2) 22: 23: 24: 25: 26: printf("%c 학점입니다.\n", grade); 13 14 if 중첩된 if의 사용 예(1/2) /* Ex05_04.c */ int score; char grade; printf("점수를 입력하세요 : "); scanf("%d", &score);

if 중첩된 if의 사용 예(2/2) 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: if ( score < 0 score > 100 ) printf("잘못 입력하셨습니다.\n"); else if ( score >= 90 ) grade = 'A'; else if ( score >= 80 ) grade = 'B'; else if ( score >= 70 ) grade = 'C'; else if ( score >= 60 ) grade = 'D'; else grade = 'F'; 중첩된 if 다중 if printf("%c 학점입니다.\n", grade); 15 16 if 중첩된 if와 다중 if

switch 기본적인 switch 먼저 정수식의 값을 평가한다. 값이 같은 case문을 찾아서 해당 case문 다음에 나열된 문장들을 수행한다. break를 만날 때까지 문장들을 수행하고, break를 만나면 switch문을 빠져나간다. 17 switch switch를 이용한 사칙연산 계산기(1/2) /* Ex05_05.c */ int a, b; char op; 두 정수를 입력받을 int형 변수 a, b 선언 연산자를 입력받을 char형 변수 op 선언 printf("수식을 입력하세요 : "); scanf("%d %c %d", &a, &op, &b); 18

switch switch를 이용한 사칙연산 계산기(2/2) 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: switch ( op ) case '+': printf("%d + %d = %d\n", a, b, a + b); break; case '-': printf("%d - %d = %d\n", a, b, a - b); break; case '*': printf("%d * %d = %d\n", a, b, a * b); break; case '/': printf("%d / %d = %d\n", a, b, a / b); break; default: printf("계산할 수 없습니다.\n"); break; switch의 사용 19 20 switch switch문의 수행 순서

switch switch 대신 if else if를 사용하는 경우(1/3) /* Ex05_06.c */ int a, b; char op; 두 정수를 입력받을 int형 변수 a, b 선언 연산자를 입력받을 char형 변수 op 선언 printf("수식을 입력하세요 : "); scanf("%d %c %d", &a, &op, &b); 21 switch switch 대신 if else if를 사용하는 경우(2/3) 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: if ( op == '+' ) printf("%d + %d = %d\n", a, b, a + b); else if ( op == '-' ) printf("%d - %d = %d\n", a, b, a - b); else if ( op == '*' ) printf("%d * %d = %d\n", a, b, a * b); else if ( op == '/' ) printf("%d / %d = %d\n", a, b, a / b); else printf("계산할 수 없습니다.\n"); if else if의 사용 22

switch switch 대신 if else if를 사용하는 경우(3/3) 32: 33: 34: 23 switch switch와 if else if의 선택(1/2) 값을 비교하는 조건식을 사용하고, 비교할 값이 둘 이상이면 switch를 사용하는 것이 더 좋다. 24

switch switch와 if else if의 선택(2/2) 값의 범위를 비교하는 경우에는 if else if를 사용하는 것이 더 좋다. 25 switch break를 사용하지 않은 경우의 예 18: 19: 20: 21: 22: 23: 24: 25: 26: switch ( op ) case '+': printf("%d + %d = %d\n", a, b, a + b); case '-': printf("%d - %d = %d\n", a, b, a - b); case '*': printf("%d * %d = %d\n", a, b, a * b); case '/': printf("%d / %d = %d\n", a, b, a / b); default: printf("계산할 수 없습니다.\n"); break를 생략한 경우 26

switch switch 사용 시 주의사항(1/3) switch문에서 break를 생략하면, break를 만날 때까지 모든 문장들을 수행한다. 27 switch switch 사용 시 주의사항(2/3) switch문에서 사용되는 default는 생략할 수 있다. default는 switch문 안에 어떤 위치에도 사용할 수 있다. 28

switch switch 사용 시 주의사항(3/3) switch의 ( ) 안에는 정수식만 사용할 수 있으며, 실수나 문자열은 사용할 수 없다. 29 같은 코드를 여러 번 반복할 수 있도록 하는 제어문 코드를 반복해서 수행해야 할 때 코드를 복사해서 작성하는 대신 을 사용 의 종류 for while do while 30

for 기본적인 for 31 for for의 사용 예 /* Ex05_08.c */ int i; for ( i = 1 ; i <= 10 ; i++) printf("%d ", i); for의 사용 printf("\n"); 32

for for의 실행 과정 for문에서도 반복해서 수행할 문장이 여러 개일 때는 로 묶어준다. 33 for for를 이용한 합계와 곱 구하기 18: 19: 20: /* Ex05_09.c */ int i; int sum = 0; int factorial = 1; 합계를 저장할 int형 변수 sum 선언 곱을 저장할 int형 변수 factorial 선언 for ( i = 1 ; i <= 10 ; i++) sum += i; factorial *= i; for의 사용 printf("1~10의 합계 : %d\n", sum); printf("1~10의 곱 : %d\n", factorial); 34

for for의 여러 가지 변형(1/2) for 문을 구성하는 초기식, 조건식, 증감식, 반복할 문장은 모두 생략할 수 있다. 35 36 for for의 여러 가지 변형(2/2) 무한 루프 널 문장

for 중첩된 for의 사용 18: /* Ex05_10.c */ #include <stdio. int i, j; for ( i = 1 ; i < 10 ; i++ ) for ( j = 1 ; j < 10 ; j++ ) printf("%d*%d=%2d ", i, j, i*j); printf("\n"); 중첩된 for의 사용 37 38 for 중첩된 for의 수행 순서 for ( i = 1 ; i < 10 ; i++ ) for ( j = 1 ; j < 10 ; j++ ) printf("%d*%d=%2d ", i, j, i*j); printf("\n");

while 기본적인 while 39 while while의 사용 예 /* Ex05_11.c */ int i; i = 1; while ( i <= 10 ) printf("%d ", i++); while의 사용 printf("\n"); 40

while for와 while for를 while로 변경할 때는 while문 앞에 초기식을 쓰고 while 블록 안쪽의 맨 끝 에 증감식을 써준다. 41 while while을 이용한 합계와 곱 구하기 18: 19: 20: 21: 22: /* Ex05_12.c */ int i; int sum = 0; int factorial = 1; i = 1; while ( i <= 10 ) sum += i; factorial *= i; i++; for의 초기식은 while 앞에서 수행 for의 조건식을 while의 조건식으로 사용 for의 증감식을 while의 맨 끝에서 수행 printf("1~10의 합계 : %d\n", sum); printf("1~10의 곱 : %d\n", factorial); 42

while while을 이용한 사칙연산 계산기(1/3) /* Ex05_13.c */ int a, b; char op; printf("수식을 입력하세요 (0 0 0 입력 시 종료) : "); scanf("%d %c %d", &a, &op, &b); 43 while while을 이용한 사칙연산 계산기(2/3) 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: while ( a!= 0 op!= '0' b!= 0 ) switch ( op ) case '+': printf("%d + %d = %d\n", a, b, a + b); break; case '-': printf("%d - %d = %d\n", a, b, a - b); break; case '*': printf("%d * %d = %d\n", a, b, a * b); break; case '/': printf("%d / %d = %d\n", a, b, a / b); break; default: printf("계산할 수 없습니다.\n"); break; op에 따라서 더하기, 빼기, 곱하기, 나누기 연산 수행 while문 수행 44

while while을 이용한 사칙연산 계산기(3/3) 33: 34: 35: 36: 37: 38: printf("수식을 입력하세요 (0 0 0 입력 시 종료) : "); scanf("%d %c %d", &a, &op, &b); 45 while 무한 루프를 이용한 구구단 프로그램 18: 19: 20: /* Ex05_14.c */ int num; int i; 구구단의 단수를 입력받기 위한 int형 변수 num 선언 while ( 1 ) printf("정수를 입력하세요 (Ctrl+C 입력 시 종료) : "); scanf("%d", &num); while을 이용한 무한 루프 for ( i = 1 ; i < 10 ; i++) printf("%d*%d=%2d ", num, i, num * i); printf("\n"); 46

do while 기본적인 do while 47 do while do while의 사용 예 /* Ex05_15.c */ int i; i = 1; do printf("%d ", i++); while ( i <= 10 ); printf("\n"); do while의 사용 48

do while for, while과 do while의 차이 for와 while은 조건식을 먼저 검사해서 조건식이 참인 경우에만 문장을 수행하지 만, do while은 일단 먼저 문장을 수행한 다음에 조건식을 검사한다. 49 분기문 break 분기문을 이용하면 실행 순서를 변경할 수 있다. break : 을 탈출한다. continue : 의 시작 부분으로 이동한다. return : 함수를 호출한 곳으로 돌아간다. goto : 레이블이 지정한 위치로 이동한다. break switch문 안에 사용하면 switch를 탈출해 서 switch의 다음 문장으로 이동한다. for, while, do while 등의 안에서 사용하면 을 빠져나가게 된다. 50

분기문 break break의 사용 예 /* Ex05_16.c */ int i; for ( i = 1 ; i <= 10 ; i++ ) if ( i % 2 == 0 ) break; printf("%d ", i); printf("\n"); i가 1~10인 동안 수행되는 for 문 break를 만나면 for 루프 탈출 51 분기문 break break를 이용한 무한 루프 탈출(1/2) /* Ex05_17.c */ #include <conio.h> int num, sum; int i; 52

분기문 break break를 이용한 무한 루프 탈출(2/2) 18: 19: 20: 21: 22: 23: 24: 25: while ( 1 ) printf("정수를 입력하세요 (-1 입력 시 종료) : "); scanf("%d", &num); if ( num == -1 ) break; 무한 루프 num이 -1이면 무한 루프 탈출 sum = 0; for ( i = 1 ; i <= num ; i++) sum += i; printf("%d까지의 합계 : %d\n", num, sum); 53 분기문 continue continue 안에서 continue를 만나면 루프의 시작 부분으로 이동해서 검사부 터 다시 계속한다. 54

분기문 continue continue의 사용 예 /* Ex05_18.c */ int i; for ( i = 1 ; i <= 10 ; i++ ) if ( i % 2 == 0 ) continue; printf("%d ", i); printf("\n"); continue를 만나면 루프 시작으로 돌아감 55 분기문 goto goto 프로그램 수행 중 제어의 흐름을 프로그램의 특정 위치로 이동하려면 goto 문을 사용한다. goto문을 사용하려면 먼저 이동할 문장을 가리키는 레이블(label)이 필요하다. 레이블을 정의할 때는 레이블을 구별하기 위한 이름과 콜론(:)이 필요하다. goto문으로 제어의 흐름을 갑자기 아무데로나 이동하게 되면, 프로그램이 이해하 기 어려워지므로 꼭 필요한 경우가 아니면 goto문을 사용하지 않는 것이 좋다. 56

분기문 goto goto의 사용 예 18: /* Ex05_19.c */ int i; exit: for ( i = 1 ; i <= 10 ; i++ ) if ( i % 2 == 0 ) goto exit; printf("%d ", i); goto를 만나면 지정된 위치로 이동 goto의 레이블 printf("\n"); 57 분기문 return return 프로그램 수행 중에 return문을 만나면 함수를 호출한 곳으로 되돌아간다. main 함수 안에서 return문을 만나면 프로그램이 종료된다. 58

분기문 return return의 사용 예 /* Ex05_20.c */ int i; for ( i = 1 ; i <= 10 ; i++ ) if ( i % 2 == 0 ) return 1; printf("%d ", i); printf("프로그램을 종료합니다.\n"); return을 만나면 함수를 호출한 곳으로 되돌아감 59 학습정리 if : 조건식이 참이면 문장을 수행하고, 조건식이 거짓이면 수행하지 않는다. switch : 정수식에 값에 따라서 다중 분기를 수행한다. for : 초기식, 조건식, 증감식으로 구성되며, 조건이 참인 동안 문장을 반복 수행한 다. while : 조건식이 참인 동안 문장을 반복 수행한다. do while : 조건식이 참인 동안 문장을 반복 수행하며, 문장을 한번 수행한 다음에 조건식을 검사한다. 분기문 break : 을 빠져나가게 만든다. continue : 의 시작 부분으로 돌아가게 만든다. return : 함수를 호출한 곳으로 돌아가게 만든다. goto : 레이블이 지정한 위치로 이동하게 만든다. 60

5 장. 제어문 수고하셨습니다. 질문있습니까? NEXT Chapter 6 장. 함수 61