예제 1-5

숫자가 아닌 추릿값은 게임 종료가 아니라 다음 입력으로 보낸다

`parse`의 실패는 사용자의 흔한 입력 실수입니다. `expect`로 멈추기보다 `match`에서 `Err(_) => continue`를 선택하면 루프가 새 추릿값을 다시 요청합니다.

01

문자열로 읽기

`read_line`은 입력을 `String`에 추가하고 엔터의 개행도 함께 남깁니다.

02

공백 제거

`trim`으로 `\n` 또는 `\r\n`을 제거해야 숫자 파싱 대상이 선명해집니다.

03

숫자로 변환

`parse`는 `Result`를 반환하므로 성공과 실패를 코드에서 나눌 수 있습니다.

04

Ok는 값 사용

`Ok(num)`이면 `num`을 새 `guess: u32`에 묶고 비밀번호와 비교합니다.

05

Err는 반복

`Err(_)`이면 에러 내용을 쓰지 않고 `continue`로 다음 루프에 들어갑니다.

핵심 갈래

Ok(num) 숫자로 바뀐 값을 반환해 섀도잉된 `guess`에 저장합니다.
Err(_) 어떤 파싱 오류든 같은 방식으로 무시하고 새 입력을 받습니다.