rust入门案例-猜数字游戏

rust 入门案例 猜数字游戏

最近,新学习了一门编程语言,叫做 rust

先不管语法,语义,规范...

安装完毕开发环境以后,先整上 入门案例 猜数字游戏。

一、看看整体的效果

第01节 案例代码

案例代码

复制的代码

rust 复制代码
// 需要导入三个包 1、标准输入 2、随机数  3、数学比较
use std::io;
use std::cmp::Ordering;
use rand::Rng;

fn main(){
    // 产生随机数
    let secret_number = rand::rng().random_range(1..=100);
    // 标题
    println!("欢迎来到猜数字游戏 {secret_number}");
    // 循环操作
    loop{
        // 输入提示
        println!("请输入 您心中理想的数字: ");
        let mut input_number = String::new();
        io::stdin().read_line(&mut input_number).expect("您输入的数据有误!");
        // 转换数据类型
        let input_number :u32 = match input_number.trim().parse(){
            Ok(input_number) => input_number,
            Err(_) => continue,
        };
        // 比较数据
        match secret_number.cmp(&input_number) {
            Ordering::Less => println!("太大了"),
            Ordering::Greater => println!("太小了"),
            Ordering::Equal => {
                println!("恭喜你, 猜对了");
                break;
            },
        };
    }
}

第02节 运行的效果

两个命令操作

复制代码
// 编译的命令
cargo   build

// 运行的命令
cargo   run

查看运行的效果

第03节 非标准包需要导入

在导入的三个包当中,随机数 是属于非标准的包,需要在 toml 文件中,添加。

其中 toml 文件内容如下:

tomal 复制代码
[package]
name = "gussesNumber"
version = "0.1.0"
edition = "2024"

[dependencies]
rand = "0.9.0"

截图内容

第04节 FAQ

这里主要是第一个入门级案例,没有介绍什么是 toml 文件,以及编译的环境等。

主要是记录一下,基础的运行效果,和 快速入门案例。

如果感觉学习难度较大,可以分步骤拆解练习咯

二、拆解练习

第01节 输入数据

代码

rust 复制代码
// 输入数据
use std::io; 

fn main(){
 
    // 输入提示
    println!("请输入 您心中理想的数字: ");

    // 创建字符串
    let mut input_number = String::new();

    // 输入数据
    io::stdin().read_line(&mut input_number).expect("您输入的数据有误!");

    // 输出结果
    println!("您输入的数据是 {input_number}");
}

第02节 类型转换

代码

rust 复制代码
fn main(){
 
    let number1 = 14;
    let number2 = "15";
    // 转换数据类型
    let number2 :u32 = match number2.trim().parse(){
        Ok(number2) => number2,
        Err(_) => 0,
    };
    // 计算加法
    let sum = number1 + number2;

    // 输出结果
    println!("结果是 {sum}");
}

第03节 产生随机数

代码

rust 复制代码
// 需要导入随机数
use rand::Rng;

fn main(){
    // 产生随机数
    let secret_number = rand::rng().random_range(1..=100);
    // 输出结果
    println!("产生的随机数是 {secret_number}");
}

第04节 比较两个数

代码

rust 复制代码
// 需要导入数学比较
use std::cmp::Ordering;

fn main(){

    let number1 = 14;
    let number2 = 16;

    // 比较数据
    match number1.cmp(&number2) {
        Ordering::Less => println!("太大了"),
        Ordering::Greater => println!("太小了"),
        Ordering::Equal =>  println!("相同"),
    };
}
相关推荐
devilnumber2 小时前
Java 递归算法 详解 + 核心要点 + 实战运用 + 避坑指南
java·开发语言·算法
asdfg12589633 小时前
JavaBean是什么?怎么理解?有什么用途?
java·开发语言
dsyyyyy11013 小时前
JavaScript变量
开发语言·javascript·ecmascript
z落落4 小时前
C#WinForm 窗体切换与窗体传值(登录跳转案例)+WinForm 窗体传值(从上往下传、从下往上传)
开发语言·windows·c#
allway25 小时前
How to Echo Multiline to a File in Bash [3 Methods]
开发语言·chrome·bash
weixin_462446235 小时前
手把手教你用 Bash 脚本自动更新 /etc/hosts —— 自动绑定网卡 IP 与节点名
开发语言·tcp/ip·bash
一个梦醒了5 小时前
安装git bash选项推荐
开发语言·git·bash
ct9785 小时前
React 状态管理方案深度对比
开发语言·前端·react
数量技术宅5 小时前
2026量化前沿:从Reddit热帖到Python实战,如何用赫斯特指数(Hurst)狙击虚假突破?
开发语言·python
华如锦5 小时前
面了很多 Java转AI Agent方向,一些面试题总结
java·开发语言·人工智能·python·ai