流程控制
Rust 的流程控制分为两类:
- 条件判断(if)
- 循环(for、loop、while)
主要涉及到四个语法:if
、for
、loop
和 while
。
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 条件表达式不存在类型转换;在做循环是根据需求选择合适的循环语句。