< 함수 >
코딩을 하다보면 노가다성 작업이 많아집니다.
이를 해결하기 위해 반복문이 생겼습니다.
그리고 함수도 생겼습니다.
함수를 사용하지 않은 코드를 한 번 보겠습니다.
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(3, 4) << endl; cout << multiple(5, 13) << endl; cout << multiple(9, 200) << 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 |