fn main() {
let i = 1;
loop {
println!("i == {}", i);
if i >= 10 {
break;
} else {
i += 1;
}
}
}
我们从编译器得到的错误信息非常有用:
不能两次赋值给不可变变量 i
为了解决这个问题,我们将变量从不可变变为可变:
fn main() {
let mut i = 1;
...
练习3
这个练习问你什么时候可以省略分号,这里有一个简单的规则:
是块中的最后一个语句
表达式的类型是 unit
例如,在这段代码中,删除分号就可以了:
fn main() {
for i in 1..11 {
println!("i == {}", i);
}
}
也就是说,像这些纯粹有效的表达上留下分号似乎有些习惯用法。
练习4
这个练习是为了在 Rust 中实现 FizzBuzz,在这里重复以下规则:
打印数字1到100
如果数字是3的倍数,输出 fizz 而不是数字
如果数字是5的倍数,输出 buzz 而不是数字
如果数字是3和5的倍数,输出fizzbuzz而不是数字
这里有一个使用 if/else 回退的可能解决方案:
fn main() {
for i in 1..101 {
if i % 3 == 0 && i % 5 == 0 {
println!("fizzbuzz");
} else if i % 3 == 0 {
println!("fizz");
} else if i % 5 == 0 {
println!("buzz");
} else {
println!("{}", i);
}
}
}