当前位置: 首页 > article >正文

Rust编程语言入门教程(四)猜数游戏:一次猜测

Rust 系列

🎀Rust编程语言入门教程(一)安装Rust🚪
🎀Rust编程语言入门教程(二)hello_world🚪
🎀Rust编程语言入门教程(三) Hello Cargo🚪
🎀Rust编程语言入门教程(四)猜数游戏:一次猜测🚪
🎀Rust编程语言入门教程(五)猜数游戏:生成、比较神秘数字并进行多次猜测🚪
🎀Rust编程语言入门教程 (六)变量与可变性🚪
🎀Rust编程语言入门教程 (七)函数与控制流🚪

目录

  • Rust 系列
  • 引言
  • 猜数游戏——目标
  • 一、创建项目
  • 二、编写代码
  • 三、运行代码
  • 四、代码解释
  • 总结

引言

猜数游戏是一个经典的编程练习,它不仅能够帮助开发者熟悉基本的输入输出操作,还能深入理解条件判断和用户交互的逻辑。在 Rust 中,通过标准库提供的 std::io 模块,我们可以轻松实现一个简单的猜数游戏。本文将详细介绍如何创建一个猜数游戏项目,编写代码,并运行和解释代码的每一部分。

猜数游戏——目标

  • 生成一个1到100间的随机数
  • 提示玩家输入一个猜测
  • 猜完之后,程序会提示猜测是太小了还是太大了
  • 如果猜测正确,那么打印出一个庆祝信息,程序退出,如果猜测错误就继续猜。

一、创建项目

创建cargo项目,用VSCode打开。
在这里插入图片描述

运行cargo项目 cargo run(编译代码+执行结果)
在这里插入图片描述

二、编写代码

这段代码实现了一个简单的输入输出程序,通过 std::io 模块,程序能够接收用户的输入并显示结果。
在这里插入图片描述

源代码:

use std::io;
fn main() {
    println!("欢迎来到猜数小游戏!");
    println!("请输入一个1到100之间的数:");

    let mut guess = String::new();

    io::stdin().read_line(&mut guess).expect("读取失败");

    println!("你输入的数是:{}", guess);
}

三、运行代码

在这里插入图片描述

四、代码解释

use std::io;

导入了标准库中的 io 模块,用于处理输入输出操作

fn main() {}

定义了程序的主函数 main,这是程序的入口。

println!(“欢迎来到猜数小游戏!”);
println!(“请输入一个1到100之间的数:”);

使用 println! 宏打印欢迎信息和提示信息,要求用户输入一个 1 到 100 之间的数字。

let mut guess = String::new();

定义了一个可变的空字符串变量 guess,用于存储用户输入的内容。

io::stdin().read_line(&mut guess).expect(“读取失败”);

io::stdin() 获取标准输入流。
read_line(&mut guess) 从标准输入中读取一行文本,并将其存储到 guess 中。
.expect("读取失败") 是一个错误处理机制,如果读取输入失败,程序会 panic 并打印 “读取失败” 提示。

println!(“你输入的数是:{}”, guess);

打印用户输入的内容,显示用户刚刚输入的数字。

总结

通过本文的介绍,我们成功创建了一个简单的猜数游戏项目。在项目中,我们使用了 Rust 的 std::io 模块来处理输入输出操作,通过 println! 宏打印提示信息,使用 read_line 方法获取用户输入,并通过 expect 方法处理可能的错误。虽然目前的代码仅实现了基本的输入输出功能,但它是猜数游戏的核心部分。接下来,我们可以进一步扩展功能,例如生成随机数、判断用户输入的大小关系、处理多次猜测等,使游戏更加完整和有趣。


http://www.kler.cn/a/554225.html

相关文章:

  • Git环境搭建指南
  • WEB安全--SQL注入--POST传参注入、SQL头部注入
  • vue2自定义useVModel函数
  • 【MySQL】ERROR 1524 (HY000): Plugin ‘mysql_native_password‘ is not loaded 解决方法
  • Docker 部署 Dify:轻松集成 Ollama 和 DeepSeek
  • 第1章大型互联网公司的基础架构——1.7 MySQL
  • RTSP协议讲解及漏洞挖掘
  • 西电B测-计算机网络综合实验(含验收问题)
  • 分享8款AI生成PPT的工具!含测评
  • 面试题之手写call,apply,bind
  • 【数据迁移】Sqlserver 迁移 Postgresql 详解 CSV+COPY 详细图文教程(实战踩坑优化案例)
  • 无人机热成像与AI跟踪技术:全天候智能应用的未来!
  • 运用先进的智能算法和优化模型,进行科学合理调度的智慧园区开源了
  • Vue的$nextTick是如何工作的
  • vue中为组建添加样式的方式
  • 使用docker-compose运行服务
  • 大摩闭门会:250218 学习总结报告
  • EasyExcel快速入门
  • 短视频平台“封号圈”乱象猖獗,IP查询如何助力防范
  • 【llm post-training】从Loss Function设计上看LLM SFT和RL的区别和联系