14.循环
现实中的循环很多,比如我们在学校操场里跑步,一圈一圈的跑。在计算机中,循环 其实就是一种重复,在满足指定的条件下,重复的做某些事情。
Rust 语言中也有三种表示 循环 的语句:
loop
语句。一种重复执行且永远不会结束的循环。
while
语句。一种在某些条件为真的情况下就会永远执行下去的循环。
for
语句。一种有确定次数的循环。
for 循环
1 2 3
| for 临时变量 in 左区间..右区间 { // 执行业务逻辑 }
|
左区间..右区间,这是一个左闭右开的区间,1..5,那就只包含 1,2,3,4
1 2 3 4 5 6 7 8
| for num in 1..5{ println!("num is {}", num); } //输出 num is 1 num is 2 num is 3 num is 4
|
可以使用 a..=b 表示两端都包含在内的范围。
1 2 3 4 5 6 7 8 9
| for num in 1..=5 { println!("num is {}", num); } 输出 num is 1 num is 2 num is 3 num is 4 num is 5
|
for 与迭代器
iter - 在每次迭代中借用集合中的一个元素。这样集合本身不会被改变,循环之后仍可以使用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| let studyList = vec![ "《Go语言极简一本通》", "Go语言微服务架构核心22讲", "从0到Go语言微服务架构师", ]; for name in studyList.iter() { match name { &"从0到Go语言微服务架构师" => println!("恭喜你进阶到第三阶段-{}!", name), _ => println!("学习: {}", name), } } //输出 学习: 《Go语言极简一本通》 学习: Go语言微服务架构核心22讲 恭喜你进阶到第三阶段-从0到Go语言微服务架构师!
|
into_iter - 会消耗集合。在每次迭代中,集合中的数据本身会被提供。一旦集合被消耗了,之后就无法再使用了,因为它已经在循环中被 “移除”(move)了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| let studyList2 = vec![ "《Go语言极简一本通》", "Go语言微服务架构核心22讲", "从0到Go语言微服务架构师", ]; for name in studyList2.into_iter() { match name { "从0到Go语言微服务架构师" => println!("恭喜你进阶到第三阶段-{}!", name), _ => println!("学习: {}", name), } } 输出 学习: 《Go语言极简一本通》 学习: Go语言微服务架构核心22讲 恭喜你进阶到第三阶段-从0到Go语言微服务架构师!
|
iter_mut - 可变地(mutably)借用集合中的每个元素,从而允许集合被就地修改。
就是停止本次执行剩下的语句,直接进入下一个循环。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| let mut studyList3 = vec![ "《Go语言极简一本通》", "Go语言微服务架构核心22讲", "从0到Go语言微服务架构师", ]; for name in studyList3.iter_mut() { *name = match name { &mut "从0到Go语言微服务架构师" => { "恭喜你进阶到第三阶段---从0到Go语言微服务架构师" } _ => *name, } } println!("studyList3: {:?}", studyList3); 输出 studyList3: ["《Go语言极简一本通》", "Go语言微服务架构核心22讲", "恭喜你进阶到第三阶段---从0到Go语言微服务架构师"]
|
while 循环
1 2 3
| while ( 条件表达式 ) { // 执行业务逻辑 }
|
上面的条件表达式为真,就会执行 while 循环。
1 2 3 4 5 6 7 8 9 10 11
| let mut num = 1; while num < 20{ println!("num is {}",num); num= num*2; } //输出 num is 1 num is 2 num is 4 num is 8 num is 16
|
loop 循环+break
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| loop { // 执行业务逻辑 } break; 中断的意思,就是跳出loop循环
let mut num = 1; loop { if num > 20{ break; } println!("num is {}",num); num= num*3; } //输出 num is 1 num is 3 num is 9
|
添加微信 |
公众号更多内容 |
 |
 |