프로그래밍 기초 - 함수

프로그래밍을 하기에 앞서 기초인 함수에 대해 알아보도록 하자.
함수란 ? 기능을 편리하게 사용하도록 구성된 영역을 뜻한다.
함수를 사용하는 가장 큰 이유는 반복적인 프로그래밍을 피할 수 있기 때문이다.
프로그램에서 특정 작업을 여러 번 반복해야 할 때는 해당 작업을 수행하는 함수를 작성하면 된다.
그리고 프로그램이 필요할 때마다 작성한 함수를 호출하면 해당 작업을 반복해서 수행할 수 있다.
함수를 선언하는법은 다음과 같다.
int sum (x,y) { // 반환 자료형, 함수 이름, 매개변수 목록 순이다.
// { }는 함수 몸체를 뜻한다.
}
우선 알아둬야할 키워드가 있다.
반환 타입 (return type) : 함수가 모든 작업을 마치고 반환하는 데이터의 타입을 명시한다.
함수 이름 : 함수를 호출하기 위한 이름을 명시한다.
매개변수 목록 (parameters) : 함수 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시한다.
함수 몸체 : 함수의 고유 기능을 수행하는 명령문의 집합이다.
함수를 호출할 시에는 여러 개의 인수를 전달할 수 있지만 함수가 반환할 수 있는 값은 1개를 넘지 못한다.
또한 함수의 인수나 반환값이 하나도 없는 함수도 존재할 수 있다.
coin을 얻는 함수를 만들어보자.
int Coin(int coin) {
coin += 5;
Debug.Log("코인을 얻었습니다. " + coin);
return coin; //더한 코인의 값을 반환한다.
}
함수를 사용하는 방법은 다음과 같다.
void Start () {
coin = Coin(coin);
}
int Coin(int coin) {
coin += 5;
Debug.Log("코인을 얻었습니다. " + coin);
return coin; //더한 코인의 값을 반환한다.
}
지금 Coin이라는 함수는 변수를 받고 있는데 이러한 변수를 매개변수라고 한다.
함수의 매개변수 이름은 집어넣을 실제 함수의 이름과 같을 필요는 없다.
이번에는 값을 바꾸어 반환할 필요 없이 그냥 함수를 사용하기만 해도 코인을 얻는 구조로 만들어보자.
그러기 위하여 반환 타입을 void로 설정해줘야 한다.
void : 반환 데이터가 없는 함수 타입
void Start () {
int coin = 25;
Coin();
}
void Coin() {
coin += 5;
Debug.Log("코인을 얻었습니다. " + coin);
}
이렇게 써보니 플레이어의 코인이 Coin 함수에서는 못 쓰게 된다.
이유는 바로 coin이라는 변수가 start라는 함수 안에 들어있는 변수라서 쓰지 못한다.
이러한것을 지역변수라고 한다.
지역변수 : 함수 안에서 선언된 변수
그렇다면 코인은 start의 지역변수이다. 함수의 지역변수는 다른 함수에서 접근할 수 없다.
반대로 모든 함수를 자유롭게 사용할 수 있는것이 전역변수이다.
전역변수 : 함수 바깥에 선언된 변수
사용법은 다음과 같다.
public class NewBehaviourScript : MonoBehaviour
{
int coin = 25;
void Start () {
Coin();
}
void Coin() {
coin += 5;
Debug.Log("코인을 얻었습니다. " + coin);
}
}
이런식으로 가장 위쪽에 선언해주면 모든 함수가 사용할 수 있다.
참고 : 골드메탈