2021 시작

use std::io;
use rand::Rng;
use std::cmp::Ordering;

fn main()
{   
    //문자를 출력한다.
    println!("숫자 맞추기 게임!!!!");
    println!("숫자를 입력해주세요 : ");

    //난수를 얻는다.
    let rand_number = rand::thread_rng().gen_range(1,101);

    //반복한다.
    loop{

        //let은 변수를 선언할 때 사용하며 기본적으로는 불변적이지만 앞에 mut을 붙이면 가변적으로 변한다.
        let mut input_number = String::new();

        //사용자로부터 문자,문자열을 입력받는다.
        io::stdin().read_line(&mut input_number).expect("오류입니다.");

        //사용자로부터 입력받은 문자,문자열을 정수로 변환한다. 
        //parse()의 반환값은 나열자이며 성공한다면 나열자에 담겨있는 
        //문자열과 같은 정수가 반환되고 그것이 아니라면 다시 입력받게한다.
        let input_number : u32 = match input_number.trim().parse(){
           Ok(num) => num,
            Err(_) => {
                println!("잘못된 입력입니다. 다시입력해주세요.");
                continue;
            }
        };

        //사용자로부터 입력받은 변수와 난수로 만들어진 변수를 비교한다.
        match input_number.cmp(&rand_number){
            Ordering::Greater => println!("더 작습니다"),
            Ordering::Less => println!("더 큽니다."),
            Ordering::Equal =>{
                println!("정답입니다. 정답은 {}이였습니다.",rand_number);
                break;
            }
        }
    }


}

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading