160 likes | 177 Views
Explore the intricacies of definite and indefinite loops with examples, decision-making scenarios, and creative challenges. Understand the flow structures for efficient coding. Build while loops effortlessly using a step-by-step approach. Implement loops in Java programming effectively.
E N D
Iteration (Loops) • Loops repeat a set of instructions • Two types of loops: • Definite loops ( for ) perform instructions explicit number of times • Indefinite loops ( while ) perform instructions an indefinite number of times (until a certain test fails) Ch. 6
Questions for You • a new class you’re writing has a method with the following signature: move (int numMoves) • should it be implemented with a definite loop or an indefinite loop? justify your answer • could it be implemented with the other type of loop? if so, should we/could we/good idea/bad idea??? Ch. 6
Questions for You • take 5 minutes and draw a situation on paper that would necessitate that you use a while loop to solve the problem Ch. 6
for Loops • General form:for ( <initialize variable>; <test>; <increment> ){ <instruction set>} Ch. 6
for Loops (cont.) • <initialize variable> sets a variable/identifier to a certain value (variable is usually count, i, j) • <test> is a test that is evaluated each time the body is about to be executed (when false, loop is exited) • <increment> changes the loop control variable (usually x++ or x--) Ch. 6
for Loops (cont.) • Example:for (int x=1; x <= 5; x++){ karel.putBeeper();} Ch. 6
for Loops (cont.) Flow of for loops: • Initialization statement executes • If test is true, proceed to step 3; if test is false, go to step 6 • Instructions in body of loop are executed • Increment statement executes • Return to step 2 • Program proceeds to statements after loop Ch. 6
while Loops • General form:while ( <test> ){ <instruction list>} • Loop continues until test is false Ch. 6
Questions for You • back on slide 3 you drew up a situation that would best be solved using a while loop - now write the code to solve your problem Ch. 6
while Loops (cont.) • Example:while (karel.frontIsClear ()){ karel.move ();} • Causes karel to move continuously until there is a wall in front of it Ch. 6
while Loops (cont.) Flow of while loops • If test is true, proceed to step 2; if test is false, go to step 4 • Instructions in body of loop are executed • Go to step 1 • Statements after loop are executed Ch. 6
Building a While LoopFormalizing (making easier) the ad-hoc way you’ve been writing while loops to this point. This will be extremely helpful to you at various times in the course and on the AP exam. • Step 1 – Identify what is true when the loop is finished (this is always easier than determining what is false while it is still executing) • Step 2 – Use the opposite form of step 1’s result as the <test> for the loop. You just need to negate the entire thing. (note: Now and again you might find that “DeMorgan-izing” your result is helpful when answering AP-like questions.) Ch. 6
Building a While Loop (cont’d) • Step 3 – make progress toward the goal (completion of the loop) within the loop • Step 4 – Do whatever is required before and/or after the loop to ensure that we solve the given problem • Example: Pick all beepers from a corner without knowing how many there are. Ch. 6
Let’s build a while loop Move a robot until it is not on a corner with any other robots and there is a wall on the left, then pick up the beeper that will be waiting there (the “hard” part is getting the condition correct without using a trial-and-error method – you don’t get to run any programs during our tests nor on the AP exam – also, you’ll code your labs faster if you have a way to ensure correct conditions EVERY time – without the crutch of running your code) You may use && and ||for this exercise. Use the 4-step process now… while (???) { ??? } Ch. 6
Your try the while condition You may use && and ||for this Write a loop that moves a robot forward until it is either next to a robot, next to a beeper, or there is no wall on its right while ( ??? ) { ??? } Ch. 6
Infinite Loops • In a for or while loop, it is possible for the test to never be false • When this happens, the loop continues infinitely • Depending on the compiler, application, and other circumstances, an error may occur or the app may crash Ch. 6