Search

함수 - return

특정한 상황에서 함수의 로직이 더이상 실행되지 않았으면 하는 경우가 있습니다.
예를 들어 체력이 5가 있는데 공격할때마다 1씩 깎이는 기능을 만들었다고 가정하겠습니다.
int hp = 5; void Attack() { --hp; Console.Write("데미지 : 1 현재체력 : " + hp); }
C#
복사
위 코드는 Attack 이라는 함수를 실행할 때마다 체력이 깎고 Console 로 출력해주는 기능입니다.
int hp = 5; Attack(); // 데미지 : 1 현재체력 : 4 Attack(); // 데미지 : 1 현재체력 : 3 Attack(); // 데미지 : 1 현재체력 : 2 Attack(); // 데미지 : 1 현재체력 : 1 Attack(); // 데미지 : 1 현재체력 : 0 Attack(); // 데미지 : 1 현재체력 : -1 ... void Attack() { --hp; Console.Write("데미지 : 1 현재체력 : " + hp); }
C#
복사
이렇게 공격할 때마다 계속 체력이 감소한다면 체력이 0 일 때 공격하더라도 체력은 - 로 계속 감소될 것입니다.
이럴 때 return 을 활용합니다.
함수의 맨 위에 추가해 보겠습니다.
int hp = 5; Attack(); // Console X Attack(); // Console X Attack(); // Console X ... void Attack() { return; <- --hp; Console.Write("데미지 : 1 현재체력 : " + hp); }
C#
복사
실행하면 이번에는 아무런 실행이 되지 않는 것을 볼 수 있습니다.
return 은 해당 코드 밑에 있는 모든 기능을 캔슬하고 함수를 종료합니다.
return이 맨 위에 있기 때문에 실행해도 아무런 기능도 동작하지 않았던 것입니다.
조건에 의해서만 return 이 동작하도록 만들어보겠습니다.
int hp = 5; Attack(); // 데미지 : 1 현재체력 : 4 Attack(); // 데미지 : 1 현재체력 : 3 Attack(); // 데미지 : 1 현재체력 : 2 Attack(); // 데미지 : 1 현재체력 : 1 Attack(); // 데미지 : 1 현재체력 : 0 Attack(); // Console X ... void Attack() { if(hp < 1) { return; <- } --hp; Console.Write("데미지 : 1 현재체력 : " + hp); }
C#
복사
조건을 설정해서 return 을 작성하면 원할때만 작동하도록 코드를 만들 수 있습니다.