流程控制¶
判断¶
//
if cond {
...
}
//
if cond {
...
} else {
...
}
//
if cond {
...
} else if {
...
}
//
if cond {
...
} else if {
...
} else {
...
}
判断条件必须为 bool。 0, 空字符串, null 等不能作为判断条件。
if + else
是一个 表达式,可以赋值给一个变量。也就是说,可以这么玩:
反例:
fn main() {
let y = if true { "no" } else { 6 };
// `if` and `else` have incompatible types. expected `&str`, found integerrustc(E0308)
}
有了这个特性,就可以这样写 min() 函数:
循环¶
while¶
while 循环需要带上条件,每次进行循环之前都需要判断一下条件是否为 true.
loop¶
loop 会一直循环,直到达到条件后显式的 break 出去。
fn main() {
let mut count = 0;
loop {
println!("{}", count);
count += 1;
if count == 5 {
break;
}
}
}
// 0 1 2 3 4
break 的时候可以带上值,这个值就作为 loop 块的返回值。那么可以像下面这么玩:
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2;
}
};
println!("{}", result); // 20
}
for¶
for 循环最常用。