자바스크립트JavaScript while,if를 사용해서 진로상담 뚜껑에 있는 숫자 맞추기
지난글에 이어지며 랜덤 정수를 만들어보겠습니다. 지난 글에서 rand crate를 가져오는 방법에 에 대해 알아보았는데요. 그 방법대로 진행해보겠습니다. crate는 Rust에서 pakage를 부르는 말입니다. Cargo.toml 파일을 열어 dependencies 아래에 다음 코드를 추가해줍니다. dependenciesrand 0.8.5 그리고 cargo build를 실행하여 rand를 가져옵니다. 이제 rand를 사용해봅시다. 그리고 genrange메서드는 범위 내의 숫자를 랜덤으로 뽑아서 돌려줍니다.
인자로 1.100을 넣었는데 start.end는 start부터 end까지의 범위를 나타냅니다.
숫자를 비교하기
다음 코드를 작성해봅시다. 변환하지 않고 비교하면 컴파일러가 에러를 냅니다. 코드를 다음과 같이 수정해줍니다. 추가된 코드를 살펴보죠. let guess u32 guess.trim.parse.expect숫자가 아닙니다.
이곳에서 trim은 앞뒤 공백과 개행문자를 제거해줍니다. parse는 문자열을 숫자형으로 변환해줍니다. 만약 숫자가 입력되지 않을 경우를 위해 expect를 사용해서 에러를 처리해줍니다.
guess에서 개행문자가 사라졌기 때문에 println도 수정해줍니다. guess.cmp(secret_number)는 guess와 secret_number를 비교해 Ordering::Less, Ordering::Greater혹은 Ordering::Equal을 반환합니다.
크레이트를 사용해서 필요한 기능 추가
크레이트는 소스 파일의 집합입니다. Cargo.toml 파일을 바꿔서 rand 크레이트를 의존 패키지로 등록해주어야 합니다. 책에서는 0.6.1 이였으나 IntelliJ 에서는 0.6.5까지 자동 완성되어 0.6.5로 입력해보았습니다. depedenciesrand 0.6.5
그 다음 프로젝트를 다시 빌드해보시면 rand 크레회 연관 컴파일링이 되었음을 확인할 수 있어요. 이후 Cargo.lock 파일을 사용해서 재생산 가능했던 빌드를 구현할 수 있어요.
새 버전의 크레이트로 업데회 하기 위해서는 Cargo.toml 파일에 지정된 조건에 해당하는 가장 최신 버전을 다시 찾습니다. 책 예제에서는 0.6.1 에서 cargo update 명령어를 통하여 0.6.2로 업데회 되어있었으나 이미 0.6.5버전으로 해버려서 업데이트가 되지 않습니다.
횟수 제약 설정하기
마지막으로 7번 안에 맞추면 성공 아니면 실패하도록 만들어보겠습니다. 첫째 현재 몇번째 예측인지 확인할 guessnumber변수를 만듭니다. let mut guessnumber 0
그리고 비교가 끝난 뒤에 guessnumber에 1을 더해주고 이 값이 7인지 확인을 합니다. 실행시켜봅시다.
빈번히 묻는 질문
숫자를 비교하기
다음 코드를 작성해봅시다. 좀 더 구체적인 사항은 본문을 참고하시기 바랍니다.
크레이트를 사용해서 필요한 기능
크레이트는 소스 파일의 집합입니다. 좀 더 구체적인 사항은 본문을 참고해 주세요.
횟수 제약 설정하기
마지막으로 7번 안에 맞추면 성공 아니면 실패하도록 만들어보겠습니다. 좀 더 구체적인 사항은 본문을 참고하시기 바랍니다.