Rust 控制流
2020-03-18 本文已影响0人
kaiv2
控制流
if
表达式
fn main() {
let num = 3;
if num > 5 {
println!(" num > 5");
} else {
println!("{}", num);
}
}
if
后面提供一个表达式,期望值为(true|false)
,根据条件执行不同的代码分支。
else if
处理多重条件
fn main() {
let num = 6;
if num % 4 == 0 {
pritnln!("num % 4 == 0%");
} else if num % 3 == 0 {
pritnln!("num % 3 == 0%");
} else {
println!("{}", num);
}
}
let
语句中使用 if
因为 if
是一个表达式,我们可以在let
语句右侧使用它。
fn main() {
let c = true;
let num = if c {
1
} else {
0
};
}
if
和 else
分支的类型必须一致。
fn main() {
let c = true;
// 无法编译通过
let x = if c {
210
} else {
"abc"
};
}
循环
loop
重复执行代码
fn main() {
loop {
println!("again!"); // 无限输出 again!
}
}
重循环返回
fn main() {
let mut c = 10;
let result = loop {
c += 1;
if c == 10 {
break c * 2
}
};
assert_eq!(result, 20);
}
使用 break
可停止循环,后面跟上表达式可返回结果。
while
条件循环
fn main() {
let mut num = 3;
while num != 0 {
println!("{}", num);
num -= 1;
}
}
使用 while
这种结构, 消除了很多使用 loop
, if
, else
和 break
时必须的嵌套,这样更加清晰,当条件为真就执行,否则推出循环。
for
变量集合
for
循环常用来遍历集合。
fn main() {
let arr = [1, 2, 3, 4, 5];
for it in arr.iter() {
println!("{}", it);
}
}