200 likes | 388 Views
Chapter 6 Iteration. Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold. Chapter Preview. In this chapter we will: discuss the use of repetition (iteration) in programming algorithms
E N D
Chapter 6Iteration Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold
Chapter Preview In this chapter we will: • discuss the use of repetition (iteration) in programming algorithms • describe the Java while, for, and do-while statements • demonstrate the use of loop invariants to verify the correctness of loops • show the use of loops in data entry and computer animation
while Loop • Repeated executes body of the loop which can be a single or compound statement • A while loop will execute as long as its condition is true • An infinite loop will occur if the condition never becomes false • Example: count = 1; while (count <= 10) count = count + 1;
while Loop From Temperature Conversion Program OutputBox out = new OutputBox( ); out.println(“\tDEGREES C\tDEGREES F”); // initialize the loop variable cent = LOW_TEMP; // test the loop variable while (cent <= HIGH_TEMP) { // convert C to F fahr = (9.0 / 5.0) * cent + 32.0; out.println(“\t” + cent “\t\t” fahr); // increment loop variable cent = cent + 1.0; }
for Statement • Used to implement pre-test loops that are controlled by incrementing a variable each time the loop is executed • Loop variable computations for initialization, testing, and incrementing appear in a single statement • Example: for(count=1; count <= 10; count = count + 1);
Done using for for ( statement1; condition; statement2 ) statement 3; Equivalent while loop statement1; while (condition) { statement3; statement2; } Comparing for and while
Temperature Conversion ProgramLoop Implemented Using for OutputBox out = new OutputBox( ); out.println(“\tDEGREES C\tDEGREES F”); for (cent = LOW_TEMP; cent <= HIGH_TEMP; cent = cent + 1.0;) { // convert C to F fahr = (9.0 / 5.0) * cent + 32.0; out.println(“\t” + cent “\t\t” fahr); }
do-while Statement • Used to implement post-test loops that always execute the loop body at least one time • A do-while loop will continue execute as long as its condition is true • An infinite loop will occur if the condition never becomes false • Example: count = 1; do { count = count + 1; } while (count <= 10);
Done using do-while do statement; while (condition); Equivalent while loop statement; while (condition) statement; Comparing do-while and while
Done using do-while numberOfDigits = 0; rest = number; do { rest = rest / 10; numberOfDigits++; } while (rest != 0); Equivalent while loop numberOfDigits = 0; rest = number; if (number = 0) numberOfDigits = 1; else while (rest > 0) { rest = rest / 10; numberOfDigits++; }; Comparing do-while and while
Done using do-while read score if ( not end of input) do { process score read score } while ( not end of input ); Done using while read score while ( not end of input ) { process score read score }; Reading Input Using a Loop
Sentinel Controlled Loop int i = 0; InputBox in = new InputBox(); In.setPrompt(“Enter data or –1 to terminate”); // read first score score = in.readInt(); while ( score != -1 ) { i++; // insert code to process score // read next score score = in.readInt(); }
Reading to End of Input int i = 0; InputBox in = new InputBox(); In.setPrompt(“Enter score (empty input ends data”); // read first score score = in.readInt(); while ( !in.eoi() ) { i++; // insert code to process score // read next score score = in.readInt(); }
Done using while read score while ( !in.eoi( ) ) { process score read score }; Done using do-while do { read score if ( !in.eoi( ) ) process score } while ( !in.eoi( ) ); Loop-and-a-Half
Done using do-while do { read if ( in.eoi( ) ) return process } while ( true ); Done using while while (true){ read if ( in.eoi( ) ) return process score }; Infinite Loop with Escape
Drawing in Java // code to read and display GIF image from file import java.awt.*; Import CSLib.*; … DrawingBox g = new DrawingBox(); … Toolkit tools = Toolkit.getDefaultToolkit(): Image mouse = tools.getImage(“C:/KMR/images/mouse.gif”); g.drawImage(mouse, x, y);
Nested Loops int advance = 0; // Draw clock and read input repeatedly do { for (int i = 1; i <= advance; i++) { // Advance time c.setMinute(c.getMinute()+1); // Update clock display d.clear(); c.display(d, SIZE/2, SIZE/2, SIZE/2); } in.setPrompt(“Advance how many minutes?”); advance = in.readInt(); } while (!in.eoi());