전체 코드

1. 함수란?

1.1 함수의 정의

함수는 입력 값을 받아 연산을 수행한 후, 결과를 반환하는 코드 블록입니다.

반환타입 함수이름([매개변수]) 
{
    함수 내용
    return 반환값;
}
  • 반환타입(Return Type): 함수가 반환하는 데이터의 타입 (int, void, double, char, 등)
  • 함수이름(Function Name): 함수의 식별자 (예: PrintHelloWorld)
  • 매개변수(Parameters): 함수가 입력받는 값 (예: int num)
  • return 반환값;: 결과를 반환 (void일 경우 생략 가능)

2. 기본적인 함수 예제

2.1 PrintHelloWorld() 함수 (입력 X, 출력 X)

#include <iostream>  
using namespace std;

// Hello World를 콘솔에 출력하는 함수
void PrintHelloWorld()
{
    cout << "Hello World!" << endl;
}

int main()
{
    PrintHelloWorld();  // 함수 호출
    return 0;
}

📌 코드 분석

  1. #include <iostream> → 입출력을 위한 표준 라이브러리 포함
  2. using namespace std;std::cout 대신 cout 사용 가능
  3. void PrintHelloWorld()
    • void → 반환값이 없음
    • cout << "Hello World!" << endl; → 콘솔에 출력
  4. PrintHelloWorld();main() 함수에서 호출

✅ 실행 결과

Hello World!

2.2 PrintNumber(int num) 함수 (입력 O, 출력 X)

// 정수를 입력받아 콘솔에 출력하는 함수
void PrintNumber(int num)
{
    cout << "넘겨주신 숫자는 " << num << "입니다." << endl;
}

int main()
{
    PrintNumber(3);  // 함수 호출
    return 0;
}

📌 코드 분석

  1. 매개변수 int num을 받아 콘솔에 출력하는 함수
  2. PrintNumber(3);num = 3으로 전달됨

✅ 실행 결과

넘겨주신 숫자는 3입니다.

2.3 MultiplyBy2(int num) 함수 (입력 O, 출력 O)

// 입력값을 2배로 곱한 값을 반환하는 함수
int MultiplyBy2(int num)
{
    return num * 2;
}

int main()
{
    int result = MultiplyBy2(3);
    cout << "3의 2배는 " << result << "입니다." << endl;
    return 0;
}

📌 코드 분석

  1. int MultiplyBy2(int num)num * 2 결과를 반환
  2. MultiplyBy2(3)3 * 2 = 6을 반환
  3. cout을 이용하여 결과 출력

✅ 실행 결과

3의 2배는 6입니다.

2.4 MultiplyBy(int a, int b) 함수 (입력 O, 출력 O)

// 두 숫자를 곱한 결과를 반환하는 함수
int MultiplyBy(int a, int b)
{
    return a * b;
}

int main()
{
    int result = MultiplyBy(5, 3);
    cout << "5와 3을 곱하면 " << result << "입니다." << endl;
    return 0;
}

📌 코드 분석

  1. MultiplyBy(int a, int b) → 두 수의 곱을 반환
  2. MultiplyBy(5, 3)5 * 3 = 15
  3. 결과를 cout을 이용해 출력

✅ 실행 결과

5와 3을 곱하면 15입니다.

3. 함수 사용의 장점

코드 재사용 가능 → 같은 기능을 여러 번 사용할 수 있음
코드 가독성 증가 → 프로그램을 더 구조적으로 만들 수 있음
유지보수 용이 → 특정 기능을 수정할 때, 함수만 변경하면 됨


4. main() 함수와 함수 호출 흐름

4.1 전체 코드 예제

#include <iostream>
using namespace std;

// Hello World를 콘솔에 출력하는 함수
void PrintHelloWorld()
{
    cout << "Hello World!" << endl;
}

// 정수를 입력받아 콘솔에 출력하는 함수
void PrintNumber(int num)
{
    cout << "넘겨주신 숫자는 " << num << "입니다." << endl;
}

// 입력값을 2배로 곱한 값을 반환하는 함수
int MultiplyBy2(int num)
{
    return num * 2;
}

// 두 숫자를 곱한 결과를 반환하는 함수
int MultiplyBy(int a, int b)
{
    return a * b;
}

int main()
{
    PrintHelloWorld();  // "Hello World!" 출력

    PrintNumber(3);     // "넘겨주신 숫자는 3입니다." 출력

    int resultA = MultiplyBy2(3);
    PrintNumber(resultA);  // "넘겨주신 숫자는 6입니다." 출력

    int resultB = MultiplyBy(5, 3);
    PrintNumber(resultB);  // "넘겨주신 숫자는 15입니다." 출력

    return 0;
}

📌 실행 흐름

  1. PrintHelloWorld();"Hello World!" 출력
  2. PrintNumber(3);"넘겨주신 숫자는 3입니다." 출력
  3. MultiplyBy2(3);6 반환 → "넘겨주신 숫자는 6입니다." 출력
  4. MultiplyBy(5, 3);15 반환 → "넘겨주신 숫자는 15입니다." 출력

✅ 실행 결과

Hello World!
넘겨주신 숫자는 3입니다.
넘겨주신 숫자는 6입니다.
넘겨주신 숫자는 15입니다.

5. 함수와 매개변수의 관계

int MultiplyBy(int a, int b)
{
    return a * b;
}

int main()
{
    int x = 5, y = 3;
    int result = MultiplyBy(x, y);
    cout << "결과: " << result << endl;
    return 0;
}
  • MultiplyBy(x, y);에서 x = 5, y = 3이 함수로 전달됨
  • 함수 내 a, b별도의 변수이며 x, y와 직접적인 관계가 없음
  • 즉, MultiplyBy(5, 3);이 실행되고, 결과 15가 반환됨

✅ 실행 결과

결과: 15

profile
李家네_공부방

0개의 댓글