C# 프로그래밍 - 함수

김민세·2023년 9월 4일
0

유니티

목록 보기
2/2
post-thumbnail

함수 개념 잡기

함수는 미리 정해진 동작을 수행하는 코드 묶음이다. 어떤 처리를 미리 함수로 만들어두면 다시 반복해서 사용할 수 있다.

위 그림은 숫자를 넣으면 5를 곱한 값을 알려주는 함수이다. 함수에는 입구와 출구가 있고, 입구에 어떤 값을 넣으면 항상 대응하는 알맞는 값이 나온다. 한 번 만든 함수는 필요할 때마다 다시 사용할 수 있다.


함수로 중복 코드 줄이기

프로그래밍에서 함수는 미리 저장된 동작을 수행하는 코드 묶음이다. 함수를 사용하면 같은 동작을 수행하는 코드를 여러번 작성할 필요가 없다.

물체를 움직이는 기능을 만들어 이를 나무 상자와 금속 상자에 적용해 움직여 보자

(과정 1) 물체를 움직이는 기능 만들기

체력을 10 소모하여 물체를 3미터만큼 욺긴다

이 기능을 코드 어딘가에 나열하면 다음과 같은 모습일 될 거다

물체 움직이기:
	체력 10만큼 감소
    오브젝트를 3미터 옮기기

(과정 2) 나무 상자와 금속 상자 움직이기

앞에서 만든 기능을 나무 상자와 금속 상자를 대상으로 사용해보자 함수가 없다면 물체를 움직이는 코드를 너무 상자와 금속 상자 각각에 대해 반복해서 작성해야 한다.

나무 상자 움직이기:
	체력 10만큼 감소
    오브젝트를 3미터 옮기기
금속 상자 움직이기:
	체력 10만큼 감소
    오브젝트를 3미터 옮기기

만약 옮길 물체가 100개라면 코드를 100번 반복해서 작성해야 한다.

또한 새로운 기능을 추가하면 모든 부분을 찾아가서 새로운 코드를 추가해주어야 한다.

(과정 3) 함수를 사용해서 반복되는 코드 대체

반복되는 코드를 함수로 대체하면 문제를 해결할 수 있다. 물체를 움직이는 기능에 관한 코드를 Move()라는 함수로 묶는다.

void Move(){
	체력 10만큼 감소
    오브젝트를 3미터를 옮기기
}

기존에 물체를 움직인 코드를 Move() 뒤에 두고 중괄호로 묶었다. 이렇게 묶인 영역은 Move() 함수의 바디가 된다.

이렇게 하면 나무 상자와 금속 상자의 중복 코드를 다음과 같이 Move() 함수로 간결하게 대체할 수 있다.

나무 상자 움직이기:
	Move();
금속 상자 움직이기:
	Move();

함수의 입력

나무 상자는 가볍고 금속 상자는 무겁다. 따라서 물체에 따라 필요한 체력과 한 번에 옮기는 거리가 달라야 한다. 앞의 함수에서는 Move() 함수가 사용하는 수치가 체력은 10, 거리가 3으로 고정되어 있다.

나무를 옮길 때는 체력 10을 소모하여 물체를 3미터, 금속을 옮길 때는 체력 30을 소모하여 물체를 1미터만큼 옮기고 싶다면 함수의 입력을 사용해야 한다. Move()의 괄호 부분은 바깥에서 값을 줄 수 있는 입구이다.

(과정 1) Move() 함수가 입력을 받게 하기

Move() 함수에서 체력과 거리를 다음과 같이 hp와 distance 변수로 대체한다.

void Move(int hp, int distance){
	체력 hp만큼 감소
    오브젝트를 distance미터 옮기기
}

그러면 Move() 함수 입력을 통해 hp와 distance에 값을 전달할 수 있다.

물체 움직이기:
	Move(hp, distance);

(과정 2) 서로 다른 값을 사용하여 Move() 함수 실행하기

다음과 같이 나무 상자는 체력 10과 거리 3을 사용하도록, 금속 상자는 체력 30과 거리 1을 사용하도록 Move()를 실행한다.

나무 상자 움직이기:
	Move(10, 3);
금속 상자 움직이기:
	Move(30, 1);
profile
김민세

0개의 댓글