카테고리 없음

삼항연산자 실습

이더23 2024. 9. 25. 16:18

문제

현재 내가 작성한 코드에서는 밑에 사진과 같이 정보가 출력이 되는데 흰색 사진과 같이 아이템을 장착했을때 옆에 수치가 뜨면서 공격력이 증가했다는 걸 보여주기 위해서는 어떤 방법을 사용해야 할까?

public virtual void Stat()
{
    Console.WriteLine($"Lv. {Lv}");
    Console.WriteLine($"이름 ( {Name} )");
    Console.WriteLine($"공격력 : {Atk}");
    Console.WriteLine($"방어력 : {Def}");
    Console.WriteLine($"체 력 : {Hp}");
    Console.WriteLine($"Gold :  {Gold}G\n");
}

 

 

시도

1. Nullable 사용하기(숫자는 null일 수가 없어서 Nullable를 사용)

필드를 밑에와 같이 작성해서 int같에도 null이 들어갈 수 있게 만들어 줬다.

public int Lv { get; set; } = 1;
public string Name { get; set; }
public int Atk { get; set; }
public int? AtkE { get; set; } = null;
public int Def { get; set; }
public int? DefE { get; set; } = null;
public int Hp { get; set; }
public int Gold { get; set; } = 10000;

 

그다음 함수에

{
    Console.WriteLine($"Lv. {Lv}");
    Console.WriteLine($"이름 ( {Name} )");
    Console.WriteLine($"공격력 : {Atk} {AtkE}");
    Console.WriteLine($"방어력 : {Def} {DefE}");
    Console.WriteLine($"체 력 : {Hp}");
    Console.WriteLine($"Gold :  {Gold}G\n");
}

 

이렇게 입력 결과

숫자는 뜨늗네 (), + 두개을 넣을 방법이 없어 보여서 다른방법을 사용하기로 했다.

 

2. 삼항연산자

필드

public int ExtraAtk { get; private set; }

public int ExtraDef { get; private set; }

 

Console.WriteLine(ExtraAtk == 0 ? $"공격력 : {Atk}" : $"공격력 : {Atk + ExtraAtk} (+{ExtraAtk})");
Console.WriteLine(ExtraDef == 0 ? $"방어력 : {Def}" : $"방어력 : {Def + ExtraDef} (+{ExtraDef})");

공격력이랑 방어력 출력 부분을 삼항연산자를 사용해서 추가 공격력이 있으면 화면에 출력되게 만들었다.

 

해결

삼항연산자를 이용해서하니 편하게 화면을 만들어 낼수 있었다.

 

느낀점

삼항연산자를 처음 사용해봤는데 정말 편리하다고 느겼고, 함수를 생성해서 리스트에 값이 있을때라던지 그런 함수들을 만든다음에 코드에 붙여서 사용하면 코드 가독성이나 그런부분이 더 좋을거 같으니 잘 만들어서 사용해 보자.