forloopsinalice1 stephen cooper wanda dann randy pausch barb ericson oct 2009 counted (for) loops in...

Post on 19-Jan-2016

218 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ForLoopsInAlice 1

Stephen Cooper

Wanda Dann

Randy Pausch

Barb Ericson

Oct 2009

Counted (For) Loops in Alice

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

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

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.

ForLoopsInAlice 5

bunny.hop

ForLoopsInAlice 6

One solution

• Creating the same instruction again and again is somewhat tedious and the code gets longer and longer.

ForLoopsInAlice 7

Counted Loop

• A counted loop is an alternate to repeated code– Repeats instructions a counted number of times

ForLoopsInAlice 8

Demo 07BunnyHop• 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 • Easy to modify

ForLoopsInAlice 9

Demo 07Carousel

• 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

ForLoopsInAlice 10

More complicated loops

• It is also possible to place a loop statement within another loop statement

• This is called a nested loop

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.

ForLoopsInAlice 12

Demo 07FerrisWheel

• 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.

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: 07LoopWithFunctionCall

ForLoopsInAlice 14

Challenges

• Copy 07BunnyHop to 07BunnyOut– 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 07BunnyHop to 07BunnySquare– And have the bunny hop in a square using a

nested loop• Loop 4 times

– Loop 3 times» Bunny hop

– Bunny turn ¼ revolution

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

top related