控制流
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);
}
}