Search

함수 - return 과 반환 형식

함수를 활용할때 보면 변수에 값을 입력할때도 활용했던 상황들이 있습니다.
그렇다면 저희가 만들었던 함수도 변수에 저장할 수 있을까요??
int hp = 5; int testNum = Attack(); string testString = Attack(); void Attack() { if(hp < 1) { return; } hp--; Console.Write("데미지 : 1 현재체력 : " + hp); }
C#
복사
저희가 만든 함수는 저장하려면 빨간줄 생기면서 에러가 발생하게 됩니다.
만약 함수의 결과를 변수에 저장하고 싶다면 return 을 이용해야합니다. 실행하면 보상을 주는 함수를 만들어 보겠습니다.
위 코드가 콘솔에 결과를 보여주는 기능만 가지고 있습니다. 변수에 저장 할 수 있게 하려면 return 이 필요합니다.
return 뒤에 결과로 사용하고 싶은 값을 입력합니다. 숫자 100을 입력해보겠습니다.
여기까지 하면 return 부분에 빨간색으로 에러가 뜨는 것을 볼 수 있습니다. 함수를 만들때 void 함수() 를 만들었는데 여기서 void함수의 결과를 사용하지 않겠다는 뜻 입니다.
만약 사용하고 싶다면 void 부분을 원하는 자료형으로 바꿔주면 됩니다.
저희는 숫자를 사용하고 있으니 int 로 설정하겠습니다.
GetPoint() 를 실행하면 return 뒤에 있는 숫자 100 이 저장됩니다.
1번과 2번은 같은 뜻이 됩니다.

주의사항

1. 함수의 반환 타입과 return 결과물의 타입이 같아야 한다.
2. 만약 void 가 아니라 반환타입을 지정했다면 반드시 return 으로 반환값을 줘야한다.
int GetPoint() { Console.WriteLine("보상으로 100 포인트를 획득합니다."); 반환값이 없다!! <- 에러 }
C#
복사
3. 타입에 맞는 데이터만 저장할 수 있다.