C#/함수

[C#] 함수 - return

테크러너 2024. 3. 27.

함수의 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

댓글