Skip to Content
💻 코리아IT아카데미 신촌 - 프로그래밍 학습 자료
C++ 프로그래밍Unit 5: 함수 기초Topic 1: 함수의 기본 개념

Topic 1: 함수의 기본 개념 🛠️

학습 목표

  • 함수의 개념과 필요성을 이해할 수 있다
  • 함수의 구조와 구성 요소를 파악할 수 있다
  • 기본적인 함수를 작성하고 호출할 수 있다

함수란 무엇인가?

함수는 특정 작업을 수행하는 코드 블록입니다.

실생활의 비유:

  • 🍳 요리 레시피 = 함수
  • 📺 TV 리모컨 버튼 = 함수 호출
  • 🏭 공장의 조립 라인 = 함수의 연결

함수가 없다면?

// 함수 없이 - 같은 코드 반복 cout << "**********" << endl; cout << "안녕하세요!" << endl; cout << "**********" << endl; cout << "**********" << endl; cout << "반갑습니다!" << endl; cout << "**********" << endl;

함수를 사용하면?

// 함수 사용 - 깔끔하고 재사용 가능! void printBox(string message) { cout << "**********" << endl; cout << message << endl; cout << "**********" << endl; } printBox("안녕하세요!"); printBox("반갑습니다!");

함수의 구조

함수 정의의 기본 형태

반환타입 함수이름(매개변수) { // 함수 본체 return 반환값; // 반환타입이 void가 아닌 경우 }

각 부분의 역할:

  • 반환타입: 함수가 돌려줄 값의 타입
  • 함수이름: 함수를 호출할 때 사용할 이름
  • 매개변수: 함수가 받을 입력값
  • 함수 본체: 실제 수행할 작업
  • return: 값을 반환하고 함수 종료

다양한 함수 형태

#include <iostream> using namespace std; // 1. 반환값도 매개변수도 없는 함수 void sayHello() { cout << "Hello, World!" << endl; } // 2. 매개변수는 있지만 반환값이 없는 함수 void greet(string name) { cout << "안녕하세요, " << name << "님!" << endl; } // 3. 반환값은 있지만 매개변수가 없는 함수 int getTen() { return 10; // 항상 10을 반환 } // 4. 반환값도 매개변수도 있는 함수 int add(int a, int b) { return a + b; } int main() { sayHello(); // Hello, World! greet("홍길동"); // 안녕하세요, 홍길동님! int num = getTen(); // 10 받기 int sum = add(10, 20); // 30 cout << "받은 숫자: " << num << endl; cout << "합: " << sum << endl; return 0; }

함수 사용의 장점

1. 🔄 코드 재사용성

같은 코드를 반복해서 쓸 필요 없음!

// 간단한 인사 함수 void greet(string name) { cout << "안녕하세요, " << name << "님!" << endl; } int main() { greet("철수"); // 한 번 만든 함수를 greet("영희"); // 여러 번 사용! greet("민수"); return 0; }

2. 📖 코드 가독성 향상

함수 이름만 봐도 무엇을 하는지 알 수 있음!

// 면적 계산 함수들 int getRectangleArea(int width, int height) { return width * height; } int getSquareArea(int side) { return side * side; } int main() { cout << "사각형 면적: " << getRectangleArea(5, 3) << endl; cout << "정사각형 면적: " << getSquareArea(4) << endl; return 0; }

3. 🧩 문제 분해 (큰 문제를 작은 문제로)

복잡한 작업을 간단한 단계들로 나누기

// 숫자 검사 함수들 bool isEven(int num) { return num % 2 == 0; } bool isPositive(int num) { return num > 0; } int main() { int number = 8; if (isEven(number) && isPositive(number)) { cout << number << "은 양수이면서 짝수입니다!" << endl; } return 0; }

함수 호출 과정 이해

#include <iostream> using namespace std; void step1() { cout << "1단계: 데이터 입력" << endl; } void step2() { cout << "2단계: 데이터 처리" << endl; } void step3() { cout << "3단계: 결과 출력" << endl; } void executeProcess() { cout << "=== 프로세스 시작 ===" << endl; step1(); step2(); step3(); cout << "=== 프로세스 완료 ===" << endl; } int main() { cout << "프로그램 시작" << endl; executeProcess(); cout << "프로그램 종료" << endl; return 0; }

간단한 실용 함수 예제

📊 수학 계산 함수

// 간단한 계산 함수들 int add(int a, int b) { return a + b; } int multiply(int a, int b) { return a * b; } // 절댓값 함수 int absolute(int num) { if (num < 0) { return -num; // 음수면 양수로 만들기 } return num; } int main() { cout << "5 + 3 = " << add(5, 3) << endl; cout << "4 × 6 = " << multiply(4, 6) << endl; cout << "-10의 절댓값: " << absolute(-10) << endl; return 0; }

🎨 출력 함수들

// 선 그리기 함수 void drawLine(int length) { for (int i = 0; i < length; i++) { cout << "*"; } cout << endl; } // 메시지 박스 출력 void printBox(string message) { drawLine(message.length() + 4); cout << "* " << message << " *" << endl; drawLine(message.length() + 4); } int main() { printBox("환영합니다"); printBox("C++ 함수 학습"); return 0; }

💡 연습해보기

🌟 기초 연습

  1. 인사 함수: 이름을 받아서 “안녕하세요, [이름]님!”을 출력하는 함수를n2. 계산 함수: 두 수를 더하는 함수와 빼는 함수 만들기
  2. 판별 함수: 숫자가 양수인지 확인하는 함수 만들기

🔥 도전 연습

  1. 최댓값 함수: 두 수 중 큰 수를 반환하는 함수
  2. 구구단 함수: 특정 단의 구구단을 출력하는 함수
  3. 별 출력 함수: 입력받은 개수만큼 별(*)을 출력하는 함수

핵심 포인트

  • 함수의 목적: 코드 재사용, 가독성 향상, 문제 분해
  • 함수의 구조: 반환타입, 함수이름, 매개변수, 함수 본체
  • 함수 형태: void 함수, 값 반환 함수, 매개변수 유무에 따른 분류
  • 장점: 재사용성, 유지보수성, 모듈화
  • 설계 원칙: 하나의 함수는 하나의 기능만 담당

다음 토픽에서는 매개변수와 반환값에 대해 더 자세히 배워보겠습니다.

✅ 함수의 기본 개념 체크리스트

Last updated on