1 / 15

# Counted (For) Loops in Alice

Counted (For) Loops in Alice. Stephen Cooper Wanda Dann Randy Pausch Barb Ericson July 2009. Learning Goals. Introduce the concept of a counted loop A loop that keeps a counter or index Show how a loop leads to easier to read and shorter code Show an infinite for loop Show a nested loop

## Counted (For) Loops in Alice

E N D

### Presentation Transcript

1. Counted (For) Loops in Alice Stephen Cooper Wanda Dann Randy Pausch Barb Ericson July 2009 04-ForLoopsInAlice

2. Learning Goals • Introduce the concept of a counted loop • A loop that keeps a counter or index • Show how a loop leads to easier to read and shorter code • Show an infinite for loop • Show a nested loop • Show a function call inside a loop 04-ForLoopsInAlice

3. Repetition • In many kinds of animations, especially simulations and games, some actions happen again and again. • Example: Gallery games where targets appear randomly on screen and then disappear only to appear elsewhere in the scene. • Of course, actions are made to happen again and again by running an animation instruction (or a method) more than once 04-ForLoopsInAlice

4. Example • A bunny sneaks into a garden and wants to eat the broccoli. The bunny will need to hop several times to get to the broccoli. 04-ForLoopsInAlice

5. bunny.hop 04-ForLoopsInAlice

6. One solution • Creating the same instruction again and again is somewhat tedious and the code gets longer and longer. 04-ForLoopsInAlice

7. Counted Loop • A counted loop is an alternate way to write repetitive code • Repeats instructions a counted number of times 04-ForLoopsInAlice

8. Demo BunnyHop • Concepts illustrated in this example • The loop instruction executes a definite number of times, specified by a count or index • Using a loop instruction • saves time • is convenient 04-ForLoopsInAlice

9. Demo Carouselinfinity • Concept illustrated in this example • If “Infinity times” is selected for a loop, this means the loop will run until the program is shut down • This is an infinite loop 04-ForLoopsInAlice

10. More complicated loops • It is also possible to place a loop statement within another loop statement • This is called a nested loop 04-ForLoopsInAlice

11. An example of nested loops The whole Ferris wheel will rotate clockwise, while the two inner wheels will rotate counterclockwise. The inner wheels should perform 2 revolutions for each outer loop revolution. 04-ForLoopsInAlice

12. Demo FerrisWheel • Concept illustrated in this example • The inner loop runs completely each time the outer loop runs once. • An outer loop that executes 2 times and an inner loop that executes 5 times will actually execute the inner loop 10 times. 04-ForLoopsInAlice

13. Using a function • A loop count can be computed by calling a function that returns a number value. • The loop instruction automatically rounds the returned value to the nearest whole number. • Demo: LoopWithFunctionCall 04-ForLoopsInAlice

14. Challenges • Copy BunnyHop • So that as the bunny nears the broccoli Papa rabbit (use Hare from the Animals folder) appears at the garden gateway and taps his foot • Have the bunny turn and hop out of the garden • Using a loop • Copy BunnyHop • And have the bunny hop in a square using a nested loop • Loop 4 times • Loop 3 times • Bunny hop • Bunny turn ¼ revolution 04-ForLoopsInAlice

15. Summary • A for loop is similar to a while loop • But is useful when you need a counter or index in the loop • An infinite loop never stops • Loops can be nested inside of other loops • You can call a function inside the test for a loop 04-ForLoopsInAlice

More Related