1 / 37

Chapter 4

Chapter 4. Ch 1 – Introduction to Computers and Java. Flow of Control Loops. Chapter 4. 4.1 Java Loop Statements 4.2 Programming with Loops 4.3 Graphics Supplement. 4.1 Java Loop Statements. repeat...repeat...repeat. Repetition simplifies coding.

lorene
Télécharger la présentation

Chapter 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 4.1Java LoopStatements repeat...repeat...repeat

  4. Repetition simplifies coding

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

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

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

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

  9. Application Deconstructed<SumNumbers.java> 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();

  10. Application Deconstructed<SumNumbers.java> 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

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

  12. Sometimes you may not wantto repeat an action at all

  13. Summing a list of numbers 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 get num num != -1 num == -1 sum += num get num end

  15. while Deconstructed<Sum of numeric list> 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(); } initial step condition step update step

  16. Application Deconstructed<SumNumericList.java> 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); 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<SumNumericList.java> System.out.println("The sum of the numbers is " + sumOfNumericList); } //end main() } //end SumNumericList

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

  19. And sometimes you may wantto repeat an action at least once

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

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

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

  23. Application Deconstructed<SumToReach.java> 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);

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

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

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

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

  28. Application Deconstructed<ForEachEnum.java> 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

  29. 4.2ProgrammingwithLoops

  30. In Class Examples 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 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

  33. 4.3GraphicSupplement

  34. Applet Deconstructed<FallingLetters.java> 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();

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

  36. Applet Deconstructed<FallingLetters.java> 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

  37. Applet Deconstructed<FallingLetters.java>

More Related