猜数游戏Rust版

本文介绍了使用Rust语言实现的一个猜数字游戏,涉及用户输入处理、随机数生成、输入验证和比较逻辑。
摘要由CSDN通过智能技术生成
//引用io库 类似c#的using
use std::cmp::Ordering;
use std::io;
use rand::Rng;

fn main() {
    println!("这是一个猜数游戏");

    println!("请输入一个数字");

    loop {
        //mut 为mutable可变,没有则为不可变  String::new()则为静态方法
        let mut guessNum = String::new();
        io::stdin()    //&是一个引用 //result的分支为成功和失败
            .read_line(&mut guessNum)
            .expect("");


        //Rust的随机函数
        //包含下限不包含上限 即为101-1
        let secret_rand_num: u32 = rand::thread_rng().gen_range(1..101);
        
        //调试判断
        if cfg!(dubug_assertions){
            println!("神秘数字是:{}", &secret_rand_num);
        } /*else {
            println!("神秘数字是:{}", "********");
        }*/



        let true_num = secret_rand_num;

        //这个字符串模板类似于Python
        println!("你猜的数字是:{}", guessNum);

        /*
        if true_num > guessNum {
            println!("数字太小");
            println!("实际数字是:{}", true_num);

        } else if true_num == guessNum {
                println!("恭喜你答对了");
                println!("实际数字是:{}", true_num);
                break;
        } else {
            println!("数字太大");
           // println!("实际数字是:{}", true_num);
        }
        */

        let guessNum: u32 = match guessNum.trim().parse() {
            Ok(num) => num,
            Err(_) => {
                eprintln!("你输入的类型或取值范围有误请重新输入:");
                continue
            },
        };

        //类似Scala的 Match Case 语句
        match guessNum.cmp(&true_num) {
            Ordering::Less => {
                println!("数字太小");
                // println!("实际数字是:{}", true_num);
            }
            Ordering::Equal => {
                println!("恭喜你答对了");
                println!("实际数字是:{}", true_num);
                break;
            }
            Ordering::Greater => {
                println!("数字太大");
                // println!("实际数字是:{}", true_num);
            }
        }
    }
}
  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KloseYu 11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值