함수의 return
특정한 상황에서 함수의 로직이 더이상 실행되지 않았으면 하는 경우가 있습니다.
예를 들어 체력이 5가 있는데 공격할때마다 1씩 깍이는 기능을 만들었다고 가정하겠습니다.
int hp = 5;
void Attack()
{
--hp;
Console.Write("데미지 : 1 현재체력 : " + hp);
}
위코드는 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);
}
이렇게 공격할때마다 계속 체력이 감소한다면 체력이 0 일때 공격하더라도 체력은 - 로 계속 감소될 것입니다.
이럴때 return 을 활용합니다.
함수의 맨위에 추가해 보겠습니다.
int hp = 5;
Attack(); // Console X
Attack(); // Console X
Attack(); // Console X
...
void Attack()
{
return; <-
--hp;
Console.Write("데미지 : 1 현재체력 : " + hp);
}
실행하면 이번에는 아무런 실행이 되지 않는 것을 볼 수 있습니다.
return 은 해당 코드 밑에 있는 모든 기능을 캔슬하고 함수를 종료합니다.
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);
}
조건을 설정해서 return 을 작성하면 원할때만 작동하도록 코드를 만들 수 있습니다.
반응형
'C# > 함수' 카테고리의 다른 글
[C#] 네이밍 규칙 - 코딩 스탠다드 (0) | 2024.03.27 |
---|---|
[C#] 함수 - 여러 매개변수 (0) | 2024.03.27 |
[C#] 함수 - 매개변수 (0) | 2024.03.27 |
[C#] 함수 - return 과 반환 형식 (0) | 2024.03.27 |
[C#] 함수 - 기본 (0) | 2024.03.27 |
댓글