20.04.15 15:28 작성
·
207
1
같을때 break되야지 while함수를 벗어나는것 아닌가요? 같지 않을때 break이면 4또는 5를 집어넣을때 멈추는 것으로 이해가되서요
답변 4
1
2020. 04. 15. 19:20
네 맞습니다. 4, 5를 입력하면 결과가 none이기 때문에 while문에서 빠져나가지 못하고,
다시 한 번 ChooseClass()를 호출해서 올바른 선택을 강요(?)받게 됩니다.
1
2020. 04. 15. 17:13
안녕하세요,
while을 사용한 이유는 '사용자가 정상적인 값을 고를 때까지 계속 입력을 받게 하기' 위함입니다.
예제에서 사용자가 "1", "2", "3" 중 하나를 골랐으면 각각 Knight, Archer, Mage로 되는 반면,
나머지 경우에는 None으로 저장이 되고 있죠.
따라서 [choice != ClassType.None]의 의미는 [사용자가 "1" "2" "3" 중 하나를 고른 경우]에 해당하니,
다를 때 break를 하면 정상 입력을 한 경우에만 다음 단계로 넘어가게 됩니다.
말씀대로 4, 5를 입력하면 빠져나가지 못하고 계속 while문에서 갇혀(?) 있게 되겠죠.
0
안녕하세요. 추가 질문 있습니다.
1,2,3 넣었을때만 break 이고, 0,4,5~ 일때 None 으로 된다면 사실 None=0 을 사용하지 않아도 4,5~일때도 None이라는 이해가 되는데요 제가 이해한게 맞을까요?
그러면
enum 을 작성할때 첫줄에 None = 0을 안써도 무방한가요?
음, break 를 위한 조건문에 None 을 사용해서 넣기는 해야 하는것 같은데.
if (choice != ClassType.None)
break;
enum ClassType
{
None = 0, 여기는 안써도 무방한것 할까요?.
Knight = 1,
Archer = 2,
Mage = 3
}
0
2020. 04. 15. 19:01
조금 이해가 갈려하는데요 none이 아닐경우는 나이트 아처 메이지니깐 break가 걸리고 4, 5를 입력하면 none이라서 그런건가요?
2022. 10. 03. 16:17
[제대로 된 값이 아닌 그 외 or 초기값] = None으로 사용하는 것이고
프로그래밍에 '꼭' 뭘 어떻게 해야한다는 정답은 없습니다.
다른 방법으로 입력하지 않은 상태를 판별한다면 당연히 그것도 안 될 것은 없겠죠.