Editor's note: This question was asked before Rust 1.0 was released and the
..
"range" operator was introduced. The question's code no longer represents the current style, but some answers below uses code that will work in Rust 1.0 and onwards.
I was playing on the Rust by Example website and wanted to print out fizzbuzz in reverse. Here is what I tried:
fn main() {
// `n` will take the values: 1, 2, ..., 100 in each iteration
for n in std::iter::range_step(100u, 0, -1) {
if n % 15 == 0 {
println!("fizzbuzz");
} else if n % 3 == 0 {
println!("fizz");
} else if n % 5 == 0 {
println!("buzz");
} else {
println!("{}", n);
}
}
}
There were no compilation errors, but it did not print out anything. How do I iterate from 100 to 1?
A forward loop is like this:
for x in 0..100 {
println!("{}", x);
}
And a reverse loop is done by calling Iterator::rev
to reverse the order:
for x in (0..100).rev() {
println!("{}", x);
}