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;
}
💡 연습해보기
🌟 기초 연습
- 인사 함수: 이름을 받아서 “안녕하세요, [이름]님!”을 출력하는 함수를n2. 계산 함수: 두 수를 더하는 함수와 빼는 함수 만들기
- 판별 함수: 숫자가 양수인지 확인하는 함수 만들기
🔥 도전 연습
- 최댓값 함수: 두 수 중 큰 수를 반환하는 함수
- 구구단 함수: 특정 단의 구구단을 출력하는 함수
- 별 출력 함수: 입력받은 개수만큼 별(*)을 출력하는 함수
핵심 포인트
- 함수의 목적: 코드 재사용, 가독성 향상, 문제 분해
- 함수의 구조: 반환타입, 함수이름, 매개변수, 함수 본체
- 함수 형태: void 함수, 값 반환 함수, 매개변수 유무에 따른 분류
- 장점: 재사용성, 유지보수성, 모듈화
- 설계 원칙: 하나의 함수는 하나의 기능만 담당
다음 토픽에서는 매개변수와 반환값에 대해 더 자세히 배워보겠습니다.
✅ 함수의 기본 개념 체크리스트
Last updated on