using System;
namespace CSharp
{
class Program
{
// 직업(Enum) 정의
enum ClassType
{
None = 0, // 기본값 (유효하지 않은 선택)
Knight = 1, // 기사
Archer = 2, // 궁수
Mage = 3 // 법사
}
// 직업을 선택하는 함수
static ClassType ChooseClass()
{
Console.WriteLine("직업을 선택하세요");
Console.WriteLine("[1] 기사");
Console.WriteLine("[2] 궁수");
Console.WriteLine("[3] 법사");
ClassType choice = ClassType.None; // 기본값 설정
string input = Console.ReadLine(); // 사용자 입력 받기
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;
}
}
}
}
enum ClassType
{
None = 0,
Knight = 1,
Archer = 2,
Mage = 3
}
enum (열거형): 특정한 정해진 값들을 관리하는 데 사용됨.Knight, Archer, Mage 같은 직업을 숫자와 연결하여 관리.None = 0 → 기본값 (유효하지 않은 선택)Knight = 1 → 기사Archer = 2 → 궁수Mage = 3 → 법사ChooseClass()) static ClassType ChooseClass()
{
Console.WriteLine("직업을 선택하세요");
Console.WriteLine("[1] 기사");
Console.WriteLine("[2] 궁수");
Console.WriteLine("[3] 법사");
ClassType choice = ClassType.None; // 기본값 설정
string input = Console.ReadLine(); // 사용자 입력 받기
switch (input)
{
case "1":
choice = ClassType.Knight;
break;
case "2":
choice = ClassType.Archer;
break;
case "3":
choice = ClassType.Mage;
break;
}
return choice; // 선택한 직업 반환
}
Console.ReadLine())을 받아 문자열을 비교1, 2, 3일 때 각각의 직업으로 설정None) 유지📌 🎯 개선할 점
"올바른 값을 입력하세요" 같은 메시지를 출력하도록 수정 가능.Main()) static void Main(string[] args)
{
while (true)
{
ClassType choice = ChooseClass(); // 직업 선택 함수 호출
if (choice != ClassType.None) // 유효한 선택이면 루프 종료
break;
}
}
while (true))를 사용하여 직업 선택 반복None이 아닐 때) 루프 종료📌 🎯 개선할 점
while (true) 대신 do-while문을 사용하면 가독성이 좋아질 수 있음.