提交 c9d9d68c 编写于 作者: jackymao.com's avatar jackymao.com

add fizzbuzz example

上级 59fa3a46
{
"node_id": "",
"keywords": [],
"children": [],
"export": [
"fizzbuzz.json"
],
"keywords_must": [],
"keywords_forbid": []
}
\ No newline at end of file
{
"type": "code_options",
"author": "jackymao_com",
"source": "fizzbuzz.md",
"notebook_enable": false,
"exercise_id": ""
}
\ No newline at end of file
# fizzbuzz
现在你了解了 Rust 的基础,先试着自己写一个 fizzbuzz 程序,规则如下:
从 1 打印到 100, 当数字能被 3 整除时,打印 fizz, 能被 5 整除时,打印 buzz, 能被 15 整除时,打印 fizzbuzz, 否则,直接打印数字。
先自己写完再来对照下面的写法并答题。
以下打印 fizzbuzz 的程序,不能正确输出结果的是:
## 答案
```rust
fn main() {
(1 ..= 100)
.map(|i| {
if i % 15 == 0 {
println!("fizzbuzz");
} else if i % 3 == 0 {
println!("fizz");
} else if i % 5 == 0 {
println!("buzz");
} else {
println!("{}", i);
}
});
}
```
### map 是惰性求值,不能直接输出,使用 for_each 可正确运行
```rust
fn main() {
(1 ..= 100)
.for_each(|i| {
if i % 15 == 0 {
println!("fizzbuzz");
} else if i % 3 == 0 {
println!("fizz");
} else if i % 5 == 0 {
println!("buzz");
} else {
println!("{}", i);
}
});
}
```
### 使用 for 循环和 if else 条件判断
```rust
fn main() {
for i in 1..=100 {
if i % 15 == 0 {
println!("fizzbuzz");
} else if i % 3 == 0 {
println!("fizz");
} else if i % 5 == 0 {
println!("buzz");
} else {
println!("{}", i);
}
}
}
```
### 使用 for 循环和 match 匹配
```rust
fn main() {
for i in 1..=100 {
match (i % 3 == 0, i % 5 == 0) {
(true, true) => println!("fizzbuzz"),
(true, false) => println!("fizz"),
(false, true) => println!("buzz"),
(false, false) => println!("{}", i),
}
}
}
```
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册