첫번 째 단계 코드 질문
2
작성한 질문수 1
첫 단계(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());
}
}
답변 1
0
안녕하세요, 인프런 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





