Add more examples for countdown (#183)
This commit is contained in:
52
03_recursion/rust/02_countdown/main.rs
Normal file
52
03_recursion/rust/02_countdown/main.rs
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
// Rust has three kinds of loops: loop, while, and for. Let’s try each one + recursive.
|
||||||
|
fn main() {
|
||||||
|
countdown_loop(5);
|
||||||
|
println!("------");
|
||||||
|
|
||||||
|
countdown_while(5);
|
||||||
|
println!("------");
|
||||||
|
|
||||||
|
countdown_for(5);
|
||||||
|
println!("------");
|
||||||
|
|
||||||
|
countdown_recursive(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn countdown_loop(count: usize) {
|
||||||
|
let mut i = count;
|
||||||
|
|
||||||
|
loop {
|
||||||
|
println!("{}", i);
|
||||||
|
i -= 1;
|
||||||
|
|
||||||
|
if i <= 0 {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn countdown_while(count: usize) {
|
||||||
|
let mut i = count;
|
||||||
|
|
||||||
|
while i > 0 {
|
||||||
|
println!("{}", i);
|
||||||
|
|
||||||
|
i -= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn countdown_for(count: usize) {
|
||||||
|
for i in (1..count + 1).rev() {
|
||||||
|
println!("{}", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn countdown_recursive(count: usize) {
|
||||||
|
println!("{}", count);
|
||||||
|
|
||||||
|
if count > 1 {
|
||||||
|
return countdown_recursive(count - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user