前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >14.Rust-循环

14.Rust-循环

原创
作者头像
面向加薪学习
修改2022-09-04 11:37:33
4250
修改2022-09-04 11:37:33
举报
文章被收录于专栏:面向加薪学习

现实中的循环很多,比如我们在学校操场里跑步,一圈一圈的跑。在计算机中,循环 其实就是一种重复,在满足指定的条件下,重复的做某些事情。

Rust 语言中也有三种表示 循环 的语句:

  • loop 语句。一种重复执行且永远不会结束的循环。
  • while 语句。一种在某些条件为真的情况下就会永远执行下去的循环。
  • for 语句。一种有确定次数的循环。

for 循环

代码语言:txt
复制
for 临时变量 in 左区间..右区间 {
   // 执行业务逻辑
}

左区间..右区间,这是一个左闭右开的区间,1..5,那就只包含 1,2,3,4

代码语言:txt
复制
for num in 1..5{
   println!("num is {}", num);
}
//输出
num is 1
num is 2
num is 3
num is 4

可以使用 a..=b 表示两端都包含在内的范围。

代码语言:txt
复制
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 - 在每次迭代中借用集合中的一个元素。这样集合本身不会被改变,循环之后仍可以使用。

代码语言:txt
复制
 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)了。

代码语言:txt
复制
 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)借用集合中的每个元素,从而允许集合被就地修改。

就是停止本次执行剩下的语句,直接进入下一个循环。

代码语言:txt
复制
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 循环

代码语言:txt
复制
while ( 条件表达式 ) {
    // 执行业务逻辑
}

上面的条件表达式为真,就会执行 while 循环。

代码语言:txt
复制
 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

代码语言:txt
复制
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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • for 循环
  • for 与迭代器
  • while 循环
  • loop 循环+break
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档