C 언어 스터디 02 - 제어문, 반복문, 함수

40
C/C++ Study 02 Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected]) 제어문, 반복문, 함수

Transcript of C 언어 스터디 02 - 제어문, 반복문, 함수

Page 1: C 언어 스터디 02 - 제어문, 반복문, 함수

C/C++ Study 02

Copyright© 2015 by YoWu. All rights reserved. http://luckyyowu.tistory.com ([email protected])

제어문, 반복문, 함수

Page 2: C 언어 스터디 02 - 제어문, 반복문, 함수

if / switch

for / while / do-while

함수

지역/전역변수

재귀함수

Page 3: C 언어 스터디 02 - 제어문, 반복문, 함수

제어문

Page 4: C 언어 스터디 02 - 제어문, 반복문, 함수

제어문

• 조건

• if

• switch case

• 반복

• while, for

• 흐름제어

• continue, break

Page 5: C 언어 스터디 02 - 제어문, 반복문, 함수

IF

• 조건에 따른 분기

• 코드 블럭

• if(조건) {

printf();

}

• if(조건)

printf();

Page 6: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 1

Page 7: C 언어 스터디 02 - 제어문, 반복문, 함수

IF ELSE

• else

• else if

if (조건A) {

이거; }

else if (조건 B) {

저거; }

else if (조건 C) {

요거; }

else {

이도저도아닌거; }

Page 8: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 2

Page 9: C 언어 스터디 02 - 제어문, 반복문, 함수

실습 - 1

• 두개의 정수(A, B)를 입력받아 A가 B의 배수인지 검사하는

프로그램 작성

Page 10: C 언어 스터디 02 - 제어문, 반복문, 함수

SWITCH

• if랑 비슷

switch(변수) {

case 1:

실행문 1;

break;

case 2:

실행문 2;

break;

default:

실행문 3;

}

Page 11: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 3

Page 12: C 언어 스터디 02 - 제어문, 반복문, 함수

실습 - 2

• 두 개의 정수 값을 입력 받고 연산자를 입력 받아 +, -, *,

/를 처리하는 계산기 프로그램을 작성(switch-case 사용)

Page 13: C 언어 스터디 02 - 제어문, 반복문, 함수

FOR

• 조건에 따른 명령 반복문

for (초기값; 조건식; 증감식) {

명령;

}

Page 14: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 4

Page 15: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 5

Page 16: C 언어 스터디 02 - 제어문, 반복문, 함수

WHILE

• for와 유사한 명령 반복문

• 증감식이 코드블록 내에 위치한다.

• for랑 구조가 같다. (while이 더 빠르단건 미신)

while (조건식) {

명령;

증감식;

}

Page 17: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 6

Page 18: C 언어 스터디 02 - 제어문, 반복문, 함수

DO-WHILE

• while와 유사한 명령 반복문

do {

명령;

증감식;

} while (조건식);

Page 19: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 7

Page 20: C 언어 스터디 02 - 제어문, 반복문, 함수

흐름 제어

• continue

• 반복문의 조건문으로

• break

• 반복문 밖으로

Page 21: C 언어 스터디 02 - 제어문, 반복문, 함수

실습 - 3

• 아래와같이출력되게프로그램작성

Page 22: C 언어 스터디 02 - 제어문, 반복문, 함수

함수

• 함수 종류

• 라이브러리

• 사용자 정의

• 함수는 왜 사용하나?

Page 23: C 언어 스터디 02 - 제어문, 반복문, 함수

함수

•함수 기본 구조

•선언과 정의

반환형 함수이름(인수1, 인수2, ….)

{

함수 내용

}

Page 24: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 8

Page 25: C 언어 스터디 02 - 제어문, 반복문, 함수

함수

• 반환형X, 파라미터X

• 반환형X, 파라미터O

• 반환형O, 파라미터O

void 함수이름() {

함수 내용;

}

void 함수이름(인수) {

함수 내용;

}

반환형 함수이름(인수) {

함수 내용;

return 반환값;

}

Page 26: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 9

Page 27: C 언어 스터디 02 - 제어문, 반복문, 함수

실습 - 4

• 몇 단을 출력할지를 입력 받아 구구단을 출력하는 사용자정의 함수를 작성해 프로그램을 만드시오

Page 28: C 언어 스터디 02 - 제어문, 반복문, 함수

변수

• 종류

• 지역 변수

• 전역 변수

• Static 변수

• 어떻게 다른가?

Page 29: C 언어 스터디 02 - 제어문, 반복문, 함수

지역 변수

•지역 변수는 메모리의 어디?

•함수 호출 시 전달 인자는?

•메모리에서 생존 기간은?

Page 30: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 10

Page 31: C 언어 스터디 02 - 제어문, 반복문, 함수

전역 변수

• 전역 변수는 메모리의 어디?

• 어떻게 다른 함수에서 접근할 수 있는가?

• 메모리에서 생존 기간은?

Page 32: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 11

Page 33: C 언어 스터디 02 - 제어문, 반복문, 함수

STATIC 변수

• 전역 변수와 지역 변수의 특징을 둘 다 가지고 있음

• 메모리의 어디에 할당되어 있는가?

Page 34: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 12

Page 35: C 언어 스터디 02 - 제어문, 반복문, 함수

재귀 함수 (recursive)

• 함수 내에서 다시 자신을 호출하는 함수

void Recursive(void)

{

printf(“recursive!\n”);

Recursive();

}

Page 36: C 언어 스터디 02 - 제어문, 반복문, 함수

예제 - 13

Page 37: C 언어 스터디 02 - 제어문, 반복문, 함수

실습 - 5

• 재귀함수를 사용해 팩토리얼 구현

Page 38: C 언어 스터디 02 - 제어문, 반복문, 함수

과제

• 스택, 메모리 데이터 영역에 대해 조사 (앞에서의 변수들은메모리의 어디?, 생성, 소멸시기 포함)

• 스택 프레임에 대해 조사

• 컴파일러, 링커에 대해 조사(각각의 역할, 결과물, 과정 등자세히)

Page 39: C 언어 스터디 02 - 제어문, 반복문, 함수

과제

• 10진수를 입력 받아 2진수로 출력하는 프로그램 작성

• 아래와 같이 출력되게 프로그램 작성

• 아래와 같이 출력되게 프로그램 작성 2 (짝수만 들어옴)

Page 40: C 언어 스터디 02 - 제어문, 반복문, 함수

과제

• 두 개의 정수를 입력 받아 최대 공약수를 구하는 사용자정의 함수를 만들어 프로그램 작성

• 재귀함수를 이용해 피보나치 수열 구현

• 재귀함수를 이용해 10진수를 2진수로 만들어주는 함수를이용해 프로그램 작성

• 스터디 시간에 했던 실습들