Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 4 Ch 1 – Introduction to Computers and Java Flow of Control Loops 1.

Similar presentations


Presentation on theme: "Chapter 4 Ch 1 – Introduction to Computers and Java Flow of Control Loops 1."— Presentation transcript:

1 Chapter 4 Ch 1 – Introduction to Computers and Java Flow of Control Loops 1

2 Chapter 4 4.1 Java Loop Statements 4.2 Programming with Loops 4.3 Graphics Supplement 2

3 4.1 Java Loop Statements 3 repeat...repeat...repeat

4 Repetition simplifies coding 4

5 How would you sum up 1 through 100? 5 sum = 1 + 2 + 3 +..... 100 sum = 1 sum += 2... sum += 100

6 How about 1 through 100,00? 6 We need a more efficient way to accomplish this task. One that can scale up easily!

7 The for Statement 7 sum = 0 num = 1 sum += num num <= 100num > 100 num++ end

8 for Deconstructed int sum = 0; for (int num = 1; num <= 100; num++) { sum += num; } 8 Is this solution scalable? int sum = 0; for (int num = 1; num <= 10000; num++) { sum += num; } initial step condition step update step

9 Application Deconstructed package sumnumbers; import java.util.Scanner; public class SumNumbers { public static void main(String[] args) { int upperBound; int sumOfNumbers = 0; Scanner keyboard = new Scanner(System.in); System.out.println("I will add numbers from 1 to n."); System.out.print("Please enter n: "); upperBound = keyboard.nextInt(); 9

10 Application Deconstructed for (int num = 1; num <= upperBound; num++) { sumOfNumbers += num; } //end for System.out.println(""); System.out.println("The sum of 1 to " + upperBound + " is " + sumOfNumbers); } //end main() } //end SumNumbers 10

11 Recap: for Use to repeat a fixed number of times Excellent choice for counting problems Very concise – all steps on one line 11

12 Sometimes you may not want to repeat an action at all 12

13 Summing a list of numbers 13 First decide what ends the list Let's say that -1 will signal the end of the input Now, could the list be empty? It could, if user enters -1 as the first number

14 The while Statement 14 get num sum += num num != -1num == -1 get num end

15 while Deconstructed int num; int sumOfNumericList = 0; System.out.print("Enter number of -1 to quit: "); num = keyboard.nextInt(); while(num != -1) { sumOfNumericList += num; System.out.print("Enter number of -1 to quit: "); num = keyboard.nextInt(); } 15 initial step condition step update step

16 Application Deconstructed package sumnumericlist; import java.util.Scanner; public class SumNumericList { public static void main(String[] args) { int num; int sumOfNumericList = 0; Scanner keyboard = new Scanner(System.in); 16 System.out.print("Enter a number or -1 to quit: "); num = keyboard.nextInt(); while (num != -1) { sumOfNumericList += num; System.out.print("Enter a number or -1 to quit: "); num = keyboard.nextInt(); } //end while

17 Application Deconstructed System.out.println("The sum of the numbers is " + sumOfNumericList); } //end main() } //end SumNumericList 17

18 Recap: while Use to repeat 0 or more times Number of iterations is unknown before hand Test before execution 18

19 And sometimes you may want to repeat an action at least once 19

20 Sum numbers until you reach 100 20 Add next number if sum is less than 100 Stop when sum becomes greater than or equal to 100

21 The do-while Statement 21 sum = 0 get num sum < 100 sum >= 100 sum += num end

22 do-while Deconstructed int num; int sumToReach = 0; do { System.out.print("Enter number: "); num = keyboard.nextInt(); sumToReach += num; } while(sumToReach < 100); 22 initial step condition step update step

23 Application Deconstructed package sumtoreach; import java.util.Scanner; public class SumToReach { public static void main(String[] args) { int num; int sumToReach = 0; Scanner keyboard = new Scanner(System.in); do { System.out.print("Enter a number: "); num = keyboard.nextInt(); sumToReach += num; } while(sumToReach < 100); 23

24 Application Deconstructed System.out.println("The sum is " + sumToReach); } //end main() } //end SumToReach 24

25 Recap: do-while Use to repeat 1 or more times Number of iterations is unknown before hand Test after execution 25

26 The for-each Statement 26 Allows you to cycle through an enumeration or collection, in its entirety

27 for-each Deconstructed enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES } 27 for ( Suit nextSuit : Suit.values() ) { System.out.print(nextSuit + " "); }

28 Application Deconstructed package foreachenum; public class ForEachEnum { enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES } public static void main(String[] args) { for ( Suit nextSuit : Suit.values() ) { System.out.print(nextSuit + " "); } //end for System.out.println(""); } //end main() } //end ForEachEnum 28

29 4.2 Programming with Loops 29

30 In Class Examples 30 for: Count down User enters upper bound, lower bound and step down. Program outputs list. while: Number reversal User enters integer to reverse. Program displays reversed number.

31 In Class Examples 31 while: Structure violation (implement in class) int num = 0; int count = 0; while (num != -1) { read number count number }

32 Recap: Repetition Strive to always choose the most appropriate loop for the task Each loop has a purpose and a structure Do not violate either one 32

33 4.3 Graphic Supplement 33

34 Applet Deconstructed package fallingletters; import java.awt.Color; import javax.swing.JApplet; import java.awt.Graphics; public class FallingLetters extends JApplet { public static final int LETTER_COUNT = 100; int windowWidth; int windowHeight; @Override public void paint(Graphics canvas) { windowWidth = this.getWidth(); windowHeight = this.getHeight(); 34

35 Applet Deconstructed @Override public void paint(Graphics canvas) { windowWidth = this.getWidth(); windowHeight = this.getHeight(); int x; int y; char c; int red; int green; int blue; 35

36 Applet Deconstructed for (int letter = 1; letter <= LETTER_COUNT; letter++) { x = (int)(Math.random() * windowWidth); y = (int) (Math.random() * windowHeight); c = (char)( (int) (Math.random() * 26) + 65); red = (int)(Math.random() * 256); green = (int)(Math.random() * 256); blue = (int)(Math.random() * 256); canvas.setColor(new Color(red, green, blue)); canvas.drawString(String.valueOf(c), x, y); }// end for }// end paint() }// end FallingLetters 36

37 Applet Deconstructed 37


Download ppt "Chapter 4 Ch 1 – Introduction to Computers and Java Flow of Control Loops 1."

Similar presentations


Ads by Google