chapter 4 ch 1 – introduction to computers and java flow of control loops 1

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

Upload: allyson-tenneson

Post on 31-Mar-2015

238 views

Category:

Documents


0 download

TRANSCRIPT

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

1

Chapter 4

Ch 1 – Introduction toComputers and Java

Flow of ControlLoops

Page 2: 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

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

3

4.1Java Loop

Statementsrepeat...repeat...repeat

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

4

Repetition simplifies coding

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

5

How would you sum up 1 through 100?

sum = 1 + 2 + 3 + ..... 100

sum = 1sum += 2

...sum += 100

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

6

How about 1 through 100,00?

We need a more efficient wayto accomplish this task.

One that can scale up easily!

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

7

The for Statement

sum = 0

num = 1

sum += num

num <= 100 num > 100

num++

end

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

8

for Deconstructed<Sum of 1-100>

int sum = 0;

for (int num = 1; num <= 100; num++) { sum += num;}

Is this solution scalable?

int sum = 0;

for (int num = 1; num <= 10000; num++) { sum += num;}

initial step

condition step

update step

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

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();

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

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

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

11

Recap: for

Use to repeat a fixed number of times

Excellent choice for counting problems

Very concise – all steps on one line

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

12

Sometimes you may not wantto repeat an action at all

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

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

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

14

The while Statement

get num

sum += num

num != -1 num == -1

get num

end

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

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

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

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

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

17

Application Deconstructed<SumNumericList.java>

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

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

18

Recap: while

Use to repeat 0 or more times

Number of iterations is unknown before hand

Test before execution

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

19

And sometimes you may wantto repeat an action at least once

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

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

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

21

The do-while Statement

sum = 0

get num

sum < 100 sum >= 100

sum += num

end

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

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

condition step

update step

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

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);

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

24

Application Deconstructed<SumToReach.java>

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

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

25

Recap: do-while

Use to repeat 1 or more times

Number of iterations is unknown before hand

Test after execution

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

26

The for-each Statement

Allows you to cycle through an enumeration or collection, in its entirety

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

27

for-each Deconstructed<Cycle through an enumeration>

enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES}

for ( Suit nextSuit : Suit.values() ) { System.out.print(nextSuit + " ");}

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

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

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

29

4.2Programming

withLoops

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

30

In Class Examples

for: Count downUser enters upper bound, lower boundand step down. Program outputs list.

while: Number reversalUser enters integer to reverse.Program displays reversed number.

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

31

In Class Examples

while: Structure violation (implement in class)

int num = 0;int count = 0;

while (num != -1) { read number count number}

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

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

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

33

4.3Graphic

Supplement

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

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();

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

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;

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

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

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

37

Applet Deconstructed<FallingLetters.java>