在 Rust 中,流程控制是指通过条件判断、循环来规定代码的执行顺序。
使用 if、else、else if、if let 语句进行条件判断,根据条件执行不同的代码块;
通过 loop、while 和 for 循环来实现重复执行代码的需求;
这些流程控制结构使得 Rust 代码更具灵活性、可读性和安全性。
条件表达式
if 表达式用于根据条件执行特定的代码块。如果条件为真,执行 if 块中的代码,否则跳过。
fn main() {
let number = 42;
if number > 50 {
println!("数字大于50");
}
}
if-else 表达式在条件为真时执行 if 块,否则执行 else 块中的代码。
fn main() {
let number = 30;
if number > 50 {
println!("数字大于50");
} else {
println!("数字不大于50");
}
}
else if 表达式用于处理多个条件,当第一个条件为假时检查下一个条件。可以链式地使用多个 else if。
fn main() {
let number = 20;
if number > 50 {
println!("数字大于50");
} else if number > 30 {
println!("数字大于30但不大于50");
} else {
println!("数字不大于30");
}
}
在 let 语句中使用 if 来进行条件赋值,这被称为“if let”表达式。
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("The value of number is: {}", number);
}
在 Rust 中,if 条件表达式的条件必须是一个 bool 类型,而不是直接使用其他类型的零值或非零值进行判断的。
这是因为 Rust 强调在类型安全和表达式的清晰性之间寻求平衡,使用明确的 bool 类型可以避免潜在的混淆和错误。
例如,当条件是 0 时,我们无法确定是一个错误还是一个有效的条件。为了明确意图,Rust 要求使用 true 或 false。
fn main() {
let condition = 0;
// 以下代码会导致编译错误,因为条件必须是bool类型
if condition {
println!("条件为真");
} else {
println!("条件为假");
}
}
循环
在 Rust 中,loop 是一个无限循环,会一直执行直到遇到 break 语句;
while 是根据条件执行的循环,只要条件为真就一直执行;
for 用于遍历集合(如数组、范围等),每次迭代从集合中取出一个元素执行循环体。
这三种循环结构提供了灵活的方式来控制代码的执行流程。
loop 循环会一直执行,直到遇到 break 语句终止。这种循环适用于需要一直运行的场景,例如事件轮询。
fn main() {
let mut count: i32 = 0;
loop {
println!("当前计数: {}", count);
if count == 5 {
break;
}
count += 1;
}
}
while 循环根据条件执行,只要条件为真,循环就会继续执行。
fn main() {
let mut count: i32 = 0;
while count < 5 {
println!("当前计数: {}", count);
count += 1;
}
}
for 循环用于遍历集合,例如数组、范围等。它提供了一种简洁的语法来迭代元素。
fn main() {
let numbers: [i32; 5] = [1, 2, 3, 4, 5];
for number in numbers.iter() {
println!("当前数字: {}", number);
}
}
这里,numbers.iter() 返回一个迭代器,for 循环遍历该迭代器中的每个元素。这是一种常见的遍历集合的方式。
本文为原创文章,未经授权禁止转载本站文章。
原文出处:兰玉磊的个人博客
原文链接:https://www.fdevops.com/2024/01/21/tansuorusttiaojianhexunhuan
版权:本文采用「署名-非商业性使用-相同方式共享 4.0 国际」知识共享许可协议进行许可。