본문 바로가기

프로그래밍/C++

C++ 기초 문법 - 함수

< 함수 >


코딩을 하다보면 노가다성 작업이 많아집니다.

이를 해결하기 위해 반복문이 생겼습니다.


그리고 함수도 생겼습니다.



함수를 사용하지 않은 코드를 한 번 보겠습니다.


a라는 변수가 100이라는 값을 가지고 실행되는 코드와

b라는 변수가 200이라는 값을 가지고 실행되는 코드와

c라는 변수가 300이라는 값을 가지고 실행되는 코드가 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
using namespace std;
 
int main()
{
    int i;
 
    int a = 0;
    for (i = 0; i < 3; i++)
    {
        a += 100;
        cout << "a의 값 : " << a << endl;
    }
    cout << endl;
 
    int b = 0;
    for (i = 0; i < 3; i++)
    {
        b += 200;
        cout << "b의 값 : " << b << endl;
    }
    cout << endl;
 
    int c = 0;
    for (i = 0; i < 3; i++)
    {
        c += 300;
        cout << "c의 값 : " << c << endl;
    }
    cout << endl;
}
cs



코드와 결과창을 보면 패턴이 보이실 겁니다.

그렇다면 이제 함수를 사용해 코드를 간결하게 만들어봅시다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>

using namespace std;
 
void example(char 변수명, int 값)
{
    int i;
    int 변수 = 0;
 
    for (i = 0; i < 3; i++)
    {
        변수+= 값;
        cout << 변수명 << "의 값 : " << 변수 << endl;
    }
    cout << endl;
}
 
int main()
{
    example('a'100);
    example('b'200);
    example('c'300);
    return 0;
}
cs



결과는 당연히 같습니다.


함수를 사용하고 싶다면 먼저 정의하고 실행해야합니다.

변수를 정의한 뒤 사용하는 것과 같다고 보시면 됩니다.

 

(이 때 main 함수가 정의되기 전에 정의해야합니다.

이유는 절차지향 C와 관련이 있지만 일단은 몰라도 되므로 그냥 외우고 넘어갑시다.)


이렇게 정의하면 됩니다.


반환형식 함수명(파라매터1, 파라매터2, ...)

{

코드

return 반환값;

}



처음 보는 반환이라는 개념이 있습니다.


반환에 대해 설명하기 전에 수학에서의 함수를 한 번 떠올려봅시다.

y = f(x)

가장 기본적인 형태의 함수입니다.

f라는 함수에 x를 집어넣으면 y라는 값을 결과로 냅니다.


C++에서도 마찬가지입니다.

f : 함수명

x : 파라매터

y : 반환값


x1, x2, x3, ... 파라매터 각각에 값을 넣고 함수를 실행시키면 y 라는 반환값을 결과로 내놓습니다.

이때 y의 변수형식을 함수를 정의할 때 '반환형식'에 쓰시면 됩니다.

파라매터는 '변수형식1 변수명1, 변수형식2, 변수명2 , ...' 형식으로 쓰시면 됩니다.


그리고 다른 함수 내에서 실행시키면 됩니다.

'함수명(파라매터)'


이러한 이유로 int main(){...} 또한 하나의 함수라는 점!


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int multiple(int a, int b)
{
    cout << a << "X" << b << "=";
    return a*b;
}
 
int main()
{
    cout << multiple(34<< endl;
    cout << multiple(513<< endl;
    cout << multiple(9200<< endl;
    return 0;
}
cs




함수의 종료점이 있습니다.

바로 return 입니다.

값을 반환하기 위한 명령어이지만 함수를 종료시키는 역할도 합니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
 
void test()
{
    cout << 1 << endl;
    cout << 2 << endl;
    return;
    cout << 3 << endl;
    cout << 4 << endl;
}
 
int main()
{
    test();
    return 0;
}
cs



보시는 것과 같이 종료점 return; 다음에 있는 3과 4는 출력되지 않은 것을 볼 수 있습니다.

'프로그래밍 > C++' 카테고리의 다른 글

C++ 기초 문법 - 클래스의 접근상태  (0) 2018.01.15
C++ 기초 문법 - 클래스  (0) 2018.01.14
C++ 기초문법 - 연산자 추가  (0) 2018.01.08
C++ 기초문법 - for문  (0) 2018.01.08
C++ 기초문법 - switch문  (0) 2018.01.08