강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của bjehose
bjehose

câu hỏi đã được viết

[Loạt bài phát triển game MMORPG thực hiện bằng C# và Unity] Phần 1: Giới thiệu lập trình cơ bản C#

Chọn công việc TextRPG

같지 않을때 break인것이 이해가안가요

Viết

·

323

1

같을때 break되야지 while함수를 벗어나는것 아닌가요? 같지 않을때 break이면 4또는 5를 집어넣을때 멈추는 것으로 이해가되서요

C#

Câu trả lời 4

1

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

네 맞습니다. 4, 5를 입력하면 결과가 none이기 때문에 while문에서 빠져나가지 못하고,
다시 한 번 ChooseClass()를 호출해서 올바른 선택을 강요(?)받게 됩니다.

1

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

안녕하세요,
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

}

 

Rookiss님의 프로필 이미지
Rookiss
Người chia sẻ kiến thức

[제대로 된 값이 아닌 그 외 or 초기값] = None으로 사용하는 것이고
프로그래밍에 '꼭' 뭘 어떻게 해야한다는 정답은 없습니다.
다른 방법으로 입력하지 않은 상태를 판별한다면 당연히 그것도 안 될 것은 없겠죠.

확인 했습니다.

감사합니다.

0

bjehose님의 프로필 이미지
bjehose
Người đặt câu hỏi

조금 이해가 갈려하는데요 none이 아닐경우는 나이트 아처 메이지니깐 break가 걸리고 4, 5를 입력하면 none이라서 그런건가요?

Hình ảnh hồ sơ của bjehose
bjehose

câu hỏi đã được viết

Đặt câu hỏi