Turtle: loops

We had this program:

use turtle::Turtle;

fn main() {
    let mut turtle = Turtle::new();

    let sides = 5.0;
    let distance = 200.0;
    let angle = 360.0 / sides;

    turtle.forward(distance);
    turtle.right(angle);
    turtle.forward(distance);
    turtle.right(angle);
    turtle.forward(distance);
    turtle.right(angle);
    turtle.forward(distance);
    turtle.right(angle);
    turtle.forward(distance);
    turtle.right(angle);
    turtle.forward(distance);
    turtle.right(angle);
    turtle.forward(distance);
    turtle.right(angle);
    turtle.forward(distance);
    turtle.right(angle);
    turtle.forward(distance);
}

Now, use loops to make it easier to read and less copy-paste.

use turtle::Turtle;

fn main() {
    let mut turtle = Turtle::new();

    let sides = 5.0;
    let distance = 200.0;
    let angle = 360.0 / sides;
    for _ in 0..30 {
        turtle.forward(distance);
        turtle.right(angle);
    }
}

As you can see, loops are very useful to avoid repeating. But also, don’t forget that the number of “loops” that happen doesn’t need to be fixed.

We can use variables, user input, and other stuff to determine for how long to loop.