Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSS161: Fundamentals of Computing

Similar presentations


Presentation on theme: "CSS161: Fundamentals of Computing"— Presentation transcript:

1 CSS161: Fundamentals of Computing
Loops This slide set was compiled from the Absolute Java textbook slides (Walter Savitch) and the professor’s own class materials. CSS161: Fundamentals of Computing

2 CSS161: Fundamentals of Computing
Loops Loop: Loop body, (i.e., Statements) to be repeated A Boolean expression to terminate the repetition Iteration: Each repetition of the loop body Three types of loop statements while loop: a Boolean expression evaluated at top of each iteration do-while loop: a Boolean expression evaluated at bottom of each iteration for loop: is similar to while loop but additionally includes initialization statements and post-iteration updating statements CSS161: Fundamentals of Computing

3 CSS161: Fundamentals of Computing
while Statement Syntax while (Boolean_Expression) Statement Or { Statement_1 Statement_2 Statement_Last } Example int countDown = 3; while ( countDown > 0 ) System.out.println( “Hello” ); countDown = countDown - 1; Boolean Expression? false true Statement(s) CSS161: Fundamentals of Computing

4 CSS161: Fundamentals of Computing
do-while Statement Syntax do Statement while (Boolean_Expression); Or { Statement_1 Statement_2 Statement_Last } while (Boolean_Expression); Example countDown = 3; System.out.println( “Hello” ); countDown = countDown – 1; } while ( countDown > 0 ); Statement(s) true Boolean Expression? false CSS161: Fundamentals of Computing

5 Algorithms and Pseudocode
Algorithm: a set of precise instructions that leads a solution. Example: Sorting Algorithms (Selection, Bubble, Insertion, Quick, Merge) Sorting three integers: Declare three variables: a, b, and c; Read keyboard inputs into a, b, and c; Swap a and b if a < b Swap a and c if a < c Swap b and c if b < c Print out a, b, and c Pseudocode: a mixture of a programming language and human language to write an algorithm int a, b, c, tmp; // read keyboard inputs into a, b, and c; if ( a < b ) { tmp = a; a = b; b = tmp; } if ( a < c ) { a = c; c = tmp; if ( b < c ) { tmp = b; b = c; // print out a, b, and c CSS161: Fundamentals of Computing

6 CSS161: Fundamentals of Computing
Pseudocode to Program import java.util.Scannaer; public class Averager { public static void main( String[] args ) Scanner keyboard = new Scanner( System.in ); System.out.println( “Enter nonnegative scores.” ); System.out.println( “End with a negative number.” ); System.out.println( “I will compute their average” ); double next, sum = 0; int count = 0; next = keyboard.nextDouble( ); while( next >= 0 ) sum += next; count++; } if ( count == 0 ) System.out.println( “No scores entered.” ); else double average = sum/count; System.out.println( count + “ scores read” ); System.out.println( “The average is ” + average ); Give the user instructions. count = 0; sum = 0; Read a number and store it in a variable named text. While ( next >= 0 ) { sum = sum + next; count++; Read a number and store it in next. } The average is sum/count provided count is not zero. Output the results Sentinel Value CSS161: Fundamentals of Computing

7 CSS161: Fundamentals of Computing
Self-Test Exercises Work on Textbook p131’s exercises 22 ~ 27. CSS161: Fundamentals of Computing

8 CSS161: Fundamentals of Computing
for Statement Syntax for (Initialization; Boolean_Expression; Updates) Body Examples int next, sum = 0; for ( next = 0; next <= 10; next++ ) { sum = sum + next; System.out.println( “sum up to ” + next + “ is ” + sum ); } Scanner keyboard = new Scanner( System.in ); int value = keyboard.nextInt( ); int limit = keyboard.nextInt( ); for ( int mult = value; mult <= limit; mult += value ) System.out.println( mult ); Initialization false Boolean Expression? true Statement(s) Updates CSS161: Fundamentals of Computing

9 for-Equivalent while Loop Syntax
CSS161: Fundamentals of Computing

10 Comma in for Statements
Multiple initializing actions, each separated by a comma Multiple updating actions, each separated by a comma Syntax: for ( Init1, Init2, ..; Boolean_Expression; update1, update2, … ) body Notes: If Initialization also declares variables (valid only within the for-loop), all declared variables must be the same type. Updates can replace body that can be even eliminated. (the last semicolon is necessary.) Example: for ( term = 1; sum = 0; term <= 10; sum += term, term++ ) ; // empty body CSS161: Fundamentals of Computing

11 CSS161: Fundamentals of Computing
Examples Syntactically illegal for ( int term = 1, double sum = 0; term <= 10; term++ ) sum = sum + term; double sum; for ( int term = 1, sum = 0; term <=10; term++ ) Syntactically legal for ( int term = 1; sum = 0; term <= 10; term++ ) Should be int CSS161: Fundamentals of Computing

12 CSS161: Fundamentals of Computing
Repeat N Times Loops Print N times (1-indexed counting) public static final int N = 30; for ( int count = 1; count <= N; count++ ) System.out.println( “Hop, Step, Jump” ); Alternative way to count (0-indexed counting) for ( int count = 0; count < N; count++ ) System.out.println( “Hop, Stem, Jump” ); int[] array = new int[N]; for ( int index = 0; index < N; index++ ) array[index] = 100; CSS161: Fundamentals of Computing

13 Empty Statement in a for Loop
Pitfall for ( int count = 0; count <= 10; count++ ); System.out.println( “count = ” + count ); Correct for ( int count = 0; count <= 10; count++ ) Intentional for ( int count = 0; count <= 10; System.out.println( “count = “ + (count++ ) ); An empty statement: meaninglessly repeated 10 times; CSS161: Fundamentals of Computing

14 CSS161: Fundamentals of Computing
Infinite Loops The Boolean expression in a do-while/while/for loop must eventually end up with “false”. Otherwise the loop can’t get finished. Examples number = 1; while ( number != 12 ) { System.out.println( number ); number = number + 2; } for ( int count = 0, limit = 5; count < limit; limit++ ) System.out.println( count ); for( ; ; ) { while ( true ) { number <= 12 count++ if ( Boolean_expression ) break; CSS161: Fundamentals of Computing

15 CSS161: Fundamentals of Computing
Nested Loops When nested, the inner loop iterates from beginning to end for each single iteration of the outer loop Examples What results will be printed out? int rowNum, columnNum; for (rowNum = 1; rowNum <=3; rowNum++) { for (columnNum = 1; columnNum <=2; columnNum++) System.out.print(" row " + rowNum + " column " + columnNum); System.out.println(); } for ( int row = 1; row <= 10; row++ ) for ( int star = 1; start <= row; star++ ) System.out.print( “*” ); System.out.println( ); CSS161: Fundamentals of Computing

16 CSS161: Fundamentals of Computing
break Statement Breaking out of the current loop for ( int x = 0; x < MAX; x++ ) if ( ( next = keyboard.nextInt( ) ) <= 0 ) break; for ( int y = 0; y < MAX; y++ ) for ( int z = 0; z < MAX; z++ ) Breaking out of the current and outer loops all under a give label outerLoop: middleLoop: innerLoop: for ( int z = 0; z < MAX; z++ ) { if ( ( next = keyboard.nextInt( ) ) < 0 ) break innerLoop; if ( next == 0 ) break middleLoop; if ( next < 100 ) break outerLoop; } CSS161: Fundamentals of Computing

17 CSS161: Fundamentals of Computing
continue Statement Ends the current iteration of the nearest enclosing loop, and then Starts the next iteration. for ( int num = 0; num < MAX; num++ ) { if ( ( div = keyboard.nextInt( ) ) == 0 ) continue; System.out.println( num + “/” + div + “=“ + num/div ) } for ( int x = 0; x < MAX; x++ ) for ( int y = 0; y < MAX; y++ ) for ( int z = 0; z < MAX; z++ ) { if ( ( div = keyboard.nextInt( ) ) <= 0 ) System.out.println( ( x + y + z ) / div ) CSS161: Fundamentals of Computing

18 CSS161: Fundamentals of Computing
exit Statement break ends a loop, but does not end the program. System.exit(0) immediately ends the program. 0 used to indicate a normal ending of the program. System.out.println( “Enter a negative number:” ); int negNumber = Kyeboard.nextInt( ); if ( negNumber >= 0 ) { System.out.println( negNumber + “>= Program aborting.” ); System.exit( 0 ); } CSS161: Fundamentals of Computing

19 CSS161: Fundamentals of Computing
Self-Test Exercises Work on Textbook P140’s exercises 28 ~ 39 CSS161: Fundamentals of Computing


Download ppt "CSS161: Fundamentals of Computing"

Similar presentations


Ads by Google