Rust 流程控制

118 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情

流程控制

Rust 的流程控制分为两类:

  • 条件判断(if)
  • 循环(for、loop、while)

主要涉及到四个语法:ifforloopwhile

if 条件判断

和大多数语言不同的是,Rust 的条件判断并不需要加上小括号 (),是可以省略的。

fn main() {
  let num = 10;
  if num > 8 {
    println!("num 大于 8");
  } else {
    println!("num 小于 8");
  }
}

如果写上括号,编译器会提示“warning: unnecessary parentheses around if condition”,也就是不必要的插入语。

同时,Rust 中也不存在强制类型转换,在写判断条件时,必须是准确的 true 或者 false:

let num = 10
if num > 10 {} // √if num {} // 在 JS 中 10 会类型转换为 true

for 循环

for 循环是最常用的循环结构,常用来遍历一个线性数据据结构(比如数组)。

for 循环遍历数组:

fn main() {
    let a = [1, 2, 3, 4, 5];
    // a.iter() 代表 a 的迭代器(iterator)
    for i in a.iter() {
        println!("{}", i); // 1,2,3,4,5
    }
}

loop 循环

loop 用于创建无限循环,使用 break 关键字来跳出循环。

// 无限循环下去
loop {
    println!("旋转,跳跃,我不停歇!");
}
​
​
// 无限循环下去
loop {
    println!("旋转,跳跃,我不停歇!");
    // 跳累了,要歇会
    break;
}

break 关键字在结束循环时还可以返回一个值:

let mut count = 1;
​
let loop_count = loop {
    count += 1;
    if count > 100 {
        // 循环了 101 次,跳出循环,并返回一个结果
        break count;
    }
};
​
println!("一共循环了:{} 次", loop_count);
// 一共循环了:101 次

while 循环

while 循环是最典型的条件语句循环。 只要条件表达式保持为 true,就会一直循环下去

结束循环的调节就是将条件设为 false。

let mut count = 0
while count < 5 {
    println!("我们跳啊跳,跳啊条...");
    count += 1;
}
println!("结束循环");

小结

本文介绍了 Rust 中的流程控制语句,主要包括了:

  • if 条件判断
  • for 循环
  • loop 循环
  • while 循环

使用时要注意,if 条件表达式不存在类型转换;在做循环是根据需求选择合适的循环语句。