文章目录
- 一、案例一:读取输入打印出来
- 二、案例二:(引入新包)猜数字游戏
- 三、案例三:循环猜测数字
- 四、案例四:猜字游戏(彩色版本)
- 五、rust一些注意事项
- 1)声明变量默认是不可修改的
- 2)const定义常量,且必须加类型标注
- 3)标量(scalar)和复合类型(compound)数据类型
- 六、函数
- 七、控制流程(if、else语句和while语句、for循环)
一、案例一:读取输入打印出来
fn main() {
println!("Hello, world!");
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("error");
println!("你打印的数字是 {}",guess);
}
二、案例二:(引入新包)猜数字游戏
cargo build 安装新包
①引入随机数包
②引入随机库
③源码
use std::io; //需要引入库
use rand::Rng;
use std::cmp::Ordering;
fn main() {
let secret_num=rand::thread_rng().gen_range(1..101);
println!("请输入你的猜测数字!");
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("error");
let guess:i32 = guess.trim().parse().expect("请输出数字");
match guess.cmp(&secret_num){
Ordering::Less =>println!("猜小了"),
Ordering::Greater =>println!("猜大了"),
Ordering::Equal =>println!("猜对了"),
}
println!("你输入的数字是 {}",guess);
print!("秘密数字是:{}",secret_num);
}
三、案例三:循环猜测数字
use std::io; //需要引入库
use rand::Rng;
use std::cmp::Ordering;
fn main() {
let secret_num=rand::thread_rng().gen_range(1..101);
loop {
println!("请输入你的猜测数字!");
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("error");
let guess:i32 = match guess.trim().parse(){
Ok(num) =>num,
Err(_) =>continue,
};
match guess.cmp(&secret_num){
Ordering::Less =>println!("猜小了"),
Ordering::Greater =>println!("猜大了"),
Ordering::Equal =>{
println!("猜对了");
break;
},
}
println!("你输入的数字是 {}",guess);
print!("秘密数字是:{}",secret_num);
}
}
四、案例四:猜字游戏(彩色版本)
use std::io; //需要引入库
use rand::Rng;
use std::cmp::Ordering;
use colored::*;
fn main() {
let secret_num=rand::thread_rng().gen_range(1..101);
loop {
println!("请输入你的猜测数字!");
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("error");
let guess:i32 = match guess.trim().parse(){
Ok(num) =>num,
Err(_) =>continue,
};
match guess.cmp(&secret_num){
Ordering::Less =>println!("{}","太小了!".red()),
Ordering::Greater =>println!("{}","太大了!".red()),
Ordering::Equal =>{
println!("{}","猜对了!".green());
break;
},
}
println!("你输入的数字是 {}",guess);
print!("秘密数字是:{}",secret_num);
}
}
五、rust一些注意事项
1)声明变量默认是不可修改的
解决方法:(加mut关键词)
2)const定义常量,且必须加类型标注
const UC_NUM:u32 = 1000;
3)标量(scalar)和复合类型(compound)数据类型
①整数类型
debug超出正常范围就会panicked,release模式下会超过最大值得数转回最小值
②字符类型
③浮点数
④复合类型tuple
取元素方式:(tuple元素从0开始,如下所示)
①解构
②点标记
⑤数组vector
下面byte数组表示初始化了8元素的数组,数组全为0
六、函数
七、控制流程(if、else语句和while语句、for循环)
用条件控制流程:
while语句控制:
for循环:
或
或(用范围循环):