inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

TextRPG 직업 고르기

첫번 째 단계 코드 질문

2

73 1

작성한 질문수 1

0

첫 단계(1~3번 누르면 프로그램 종료, 그 외는 반복)에서 제가 작성한 코드와 강의에서 작성한 코드가 달라서, 혹시 제가 작성한 코드는 논리적으로 문제가 있는지 궁금해서 질문합니다. 직업 선택은 함수 job()으로 정의해서 사용했고, enum 대신에 int.Parse 이용해서 숫자가 1~3이 아닐 때를 조건으로 했습니다.

static void job()
{
    Console.WriteLine("직업을 선택하세요!");
    Console.WriteLine("[1] 기사");
    Console.WriteLine("[2] 궁수");
    Console.WriteLine("[3] 법사");
}
public static void Main(string[] args)
{
    // 잘못된 수이면 똑같은 것이 계속 반복.
    job();
    int choice = 0;
    choice = int.Parse(Console.ReadLine());
    while(choice <= 0 || choice >= 4)
    {
        job();
        choice = int.Parse(Console.ReadLine());
    }
}

C#

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 73 1님 질문과 유사한 기존 답변을 참고해 주세요.

작성하신 코드는 1~3이 아닌 숫자를 입력하면 다시 직업 선택을 출력하고, 1~3을 입력하면 while문을 빠져나오는 구조이므로 논리적으로 문제가 없습니다.

while (choice <= 0 || choice >= 4)

이 조건은 choice가 1~3이 아닐 때 참이 됩니다.

  • choice가 0 이하 → 다시 반복
  • choice가 4 이상 → 다시 반복
  • choice가 1, 2, 3 → 조건이 거짓이 되어 반복 종료

따라서 강의의 enum ClassType.None을 사용하는 방식과 결과는 비슷하지만, 몇 가지 차이가 있습니다.

  • 현재 방식: 숫자의 범위를 직접 검사
  • 강의 방식: None, Knight, Archer, Mage처럼 의미 있는 이름으로 상태를 관리

다만 int.Parse()는 숫자가 아닌 값을 입력하면 FormatException이 발생할 수 있습니다. 예를 들어 a를 입력해도 계속 반복하게 하려면 int.TryParse()를 사용하는 것이 더 안전합니다.

궁금한거 질문드립니다!!

해당 답변에서도 choice의 초기값이 None이고, 1·2·3을 입력했을 때만 직업 값으로 변경되기 때문에 그 외 입력에서는 계속 반복된다는 점을 설명하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안녕하세요 Rookiss님 기본기를 다지고 있는 대학생입니다.

0

104

2

Generic에 대한 질문 있습니다.

0

178

2

2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?

0

293

2

다형성 캐시 문제

0

200

3

.

0

111

1

프로퍼티 강의 질문 있습니다.

0

124

1

이후 커리 질문

0

137

1

static

0

167

2

강의에는 새로운 클래스 파일을 생성하면...

0

128

1

생성자의 이름 선언

0

112

1

9:03 Divide(10 , 3) 부분 질문입니다

0

125

1

깃허브 관련 질문 있습니다.

0

287

1

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

0

297

1

C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!

0

351

2

Activator 질문있습니다

0

380

1

이넘 타임 선언 질문

0

402

1

Sort 오름차순, 내림차순

0

372

1

질문 있습니다.

0

287

1

팩토리얼 문제

0

313

1

Sort함수 질문있습니다.

0

313

1

다형성 함수 질문 있습니다.

0

272

1

질문이 있습니다.

0

269

1

섹션2 연습문제 질문입니다.

0

275

1

안녕하세요~서버에 대해 질문이 있습니다.

1

320

1