猜数游戏Rust版


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//引用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);
            }
        }
    }
}

 

posted @   KloseYu  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示