diff --git "a/data/1.rust\345\210\235\351\230\266/5.Rust\345\210\235\351\230\266\345\256\236\346\210\230/1.fizzbuzz/config.json" "b/data/1.rust\345\210\235\351\230\266/5.Rust\345\210\235\351\230\266\345\256\236\346\210\230/1.fizzbuzz/config.json" new file mode 100644 index 0000000000000000000000000000000000000000..787a00b1f1933a061a3c1e1dae8f879a6937ea93 --- /dev/null +++ "b/data/1.rust\345\210\235\351\230\266/5.Rust\345\210\235\351\230\266\345\256\236\346\210\230/1.fizzbuzz/config.json" @@ -0,0 +1,10 @@ +{ + "node_id": "", + "keywords": [], + "children": [], + "export": [ + "fizzbuzz.json" + ], + "keywords_must": [], + "keywords_forbid": [] +} \ No newline at end of file diff --git "a/data/1.rust\345\210\235\351\230\266/5.Rust\345\210\235\351\230\266\345\256\236\346\210\230/1.fizzbuzz/fizzbuzz.json" "b/data/1.rust\345\210\235\351\230\266/5.Rust\345\210\235\351\230\266\345\256\236\346\210\230/1.fizzbuzz/fizzbuzz.json" new file mode 100644 index 0000000000000000000000000000000000000000..eeb25e89408875c1bb0dde5de44e36b62c41f420 --- /dev/null +++ "b/data/1.rust\345\210\235\351\230\266/5.Rust\345\210\235\351\230\266\345\256\236\346\210\230/1.fizzbuzz/fizzbuzz.json" @@ -0,0 +1,7 @@ +{ + "type": "code_options", + "author": "jackymao_com", + "source": "fizzbuzz.md", + "notebook_enable": false, + "exercise_id": "" +} \ No newline at end of file diff --git "a/data/1.rust\345\210\235\351\230\266/5.Rust\345\210\235\351\230\266\345\256\236\346\210\230/1.fizzbuzz/fizzbuzz.md" "b/data/1.rust\345\210\235\351\230\266/5.Rust\345\210\235\351\230\266\345\256\236\346\210\230/1.fizzbuzz/fizzbuzz.md" new file mode 100644 index 0000000000000000000000000000000000000000..06c1188b73c6ccd32bcfae4c9de2b33d6d594a5b --- /dev/null +++ "b/data/1.rust\345\210\235\351\230\266/5.Rust\345\210\235\351\230\266\345\256\236\346\210\230/1.fizzbuzz/fizzbuzz.md" @@ -0,0 +1,82 @@ +# 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