📜  Rust – For 和 Range(1)

📅  最后修改于: 2023-12-03 15:19:53.002000             🧑  作者: Mango

Rust – For 和 Range

在 Rust 中,循环语句可以使用 for 关键字来实现,同时也可以使用 range 类型来限定循环范围。

For 循环

for 循环语句提供一种迭代集合类型对象的简单方式。语法如下:

for var in iterable {
    // 循环体
}

其中 var 是循环变量,类型根据 iterable 中元素的类型自动推导出来。iterable 可以是 Rust 中的任意集合类型对象,包括数组、向量和迭代器等。

例如,我们可以使用 for 循环遍历一个数组并打印出每个元素的值:

let arr = [1, 2, 3];
for i in &arr {
    println!("{}", i);
}

这里使用了 &arr 将数组借用给 for 循环,避免了将整个数组复制一遍的开销。

Range 类型

range 类型是 Rust 中一种表示数字范围的简单类型。语法如下:

start..end       // 半开区间,包括起始值但不包括结束值
start..=end      // 闭区间,包括起始值也包括结束值

例如,我们可以使用 range 来限定循环范围:

for i in 0..10 {    // 0 到 9
    println!("{}", i);
}

for i in 0..=10 {   // 0 到 10
    println!("{}", i);
}
循环控制

在循环中,我们可以使用 breakcontinue 关键字来控制循环的流程。

当我们需要在满足某个条件时直接跳出整个循环时,可以使用 break

let arr = [1, 2, 3, 4, 5];
let mut sum = 0;
for i in &arr {
    if *i == 3 {
        break;
    }
    sum += i;
}
println!("{}", sum);    // 输出 3

当我们需要在某些情况下跳过循环的当前迭代时,可以使用 continue

let arr = [1, 2, 3, 4, 5];
let mut sum = 0;
for i in &arr {
    if *i % 2 == 0 {
        continue;
    }
    sum += i;
}
println!("{}", sum);    // 输出 9
总结

Rust 中的 for 循环和 range 类型可以方便地进行遍历和范围限定。同时,循环控制语句也可以帮助我们控制循环的流程。深入掌握这些语法将有助于我们更加高效地处理各种问题。