가보자고 !
비주얼 스튜디오 왼 쪽에 중단점을 찍고 f10, f11로 코드가 어떻게 실행되는지 확인할 수 있다. 근데 맥은 단축키를 버튼 세 개를 동시에 눌러야 해서 그냥 마우스로 디버깅 하는 게 나은 것 같다,,,
중단점을 우클릭하여 조건에 만족하면 실행되도록 설정할 수 있다.
class Program
{
static void Main(string[] args)
{
bool isSelect = true;
while (isSelect)
{
Console.WriteLine("Choice your job");
Console.WriteLine("[1] worrier");
Console.WriteLine("[2] archer");
Console.WriteLine("[3] magician");
int input;
int.TryParse(Console.ReadLine(), out input);
switch (input)
{
case 1:
Console.WriteLine("worrier");
isSelect = false;
break;
case 2:
Console.WriteLine("archer");
isSelect = false;
break;
case 3:
Console.WriteLine("magician");
isSelect = false;
break;
default:
Console.WriteLine("Please select 1~3 number");
break;
}
}
}
}
while문과 TryParse메서드를 사용하여 구현하였다.
class Program
{
enum ClassType
{
None = 0,
Knight = 1,
Archer = 2,
Mage = 3
}
static void Main(string[] args)
{
ClassType choice = ClassType.None;
while (choice == ClassType.None)
{
Console.WriteLine("Choice your job");
Console.WriteLine("[1] Knight");
Console.WriteLine("[2] Archer");
Console.WriteLine("[3] Mage");
string input = Console.ReadLine();
switch (input)
{
case "1":
choice = ClassType.Knight;
break;
case "2":
choice = ClassType.Archer;
break;
case "3":
choice = ClassType.Mage;
break;
}
}
}
}
위는 강사님의 코드
while문의 종료 조건을 단순하게 bool 변수 하나를 만드는 것으로 생각했는데 enum이 사용될 줄은 몰랐다. 그리고 숫자가 아닌 문자가 입력되는 상황을 고려하여 TryParse메서드를 사용하였으나, switch문에서 그냥 input을 string으로 만들고 while문 종료 조건을 enum을 사용하여 간단하게 구현이 되었다.
class Program
{
enum ClassType
{
None = 0,
Knight = 1,
Archer = 2,
Mage = 3
}
static ClassType ChooseClass()
{
Console.WriteLine("Choice your job");
Console.WriteLine("[1] Knight");
Console.WriteLine("[2] Archer");
Console.WriteLine("[3] Mage");
string input = Console.ReadLine();
ClassType choice = ClassType.None;
switch (input)
{
case "1":
choice = ClassType.Knight;
break;
case "2":
choice = ClassType.Archer;
break;
case "3":
choice = ClassType.Mage;
break;
}
return choice;
}
static void Main(string[] args)
{
while (true)
{
ClassType choice = ChooseClass();
if (choice != ClassType.None)
{
break;
}
}
}
}
위는 메서드를 이용하는 방법. 객체지향의 기본을 보는 듯 하다.
Main 내부에는 while문만 남기고 나머지는 메서드로 묶어서 관리하기 때문에 객체지향 프로그래밍의 기본인 유지보수성이 좋아졌다고 할 수 있겠다.
여태 배워왔고 사용한 방법이랑은 다르게 코드를 작성하는 강사님이 신기했다. 역시 다른 사람의 특히 자신 보다 경험이 많은 분의 코드를 보고 리뷰를 해보는 것이 실력 상승에 굉장한 도움이 된다.