random number generation public class hand { private int card1; private int card2; private int...

18
Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD = 0; private int getNewCard() { return rand.nextInt(13) + 1; } public Hand() { rand = new Random(); card1 = getNewCard(); card2 = getNewCard(); card3 = NO_CARD; }

Post on 19-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

Random Number Generationpublic class Hand

{

private int card1;

private int card2;

private int card3;

private Random rand;

public static final int NO_CARD = 0;

private int getNewCard()

{

return rand.nextInt(13) + 1;

}

public Hand()

{

rand = new Random();

card1 = getNewCard();

card2 = getNewCard();

card3 = NO_CARD;

}

Page 2: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

Switch/CaseStatement

public String getCardName(int cardValue) {

String cardName = "”;

switch(cardValue)

{

case 1: cardName = "Ace";

break;

case 2:

case 3:

case 4:

case 5:

case 6:

case 7:

case 8:

case 9:

case 10: cardName = cardValue + "";

break;

case 11: cardName = "Jack";

break;

case 12: cardName = "Queen";

break;

default: cardName = "King";

}

return cardName;

}

Page 3: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

Chapter 6

Iteration/Looping

Page 4: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

• A while statement executes a block of code repeatedly

• A condition controls how often the loop is executed

while (condition) statement

• Most commonly, the statement is a block statement (set of statements delimited by { })

while Loops

Page 5: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

  while Loop Flowchart 

Page 6: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

while Loop Examples

Page 7: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

while Loop Examples

Page 8: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

Big Java by Cay HorstmannCopyright © 2009 by John Wiley & Sons. All rights reserved.

Syntax 6.1 The while Statement

Page 9: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

• Example:

int years = 0; while (years < 20) { double interest = balance * rate / 100; balance = balance + interest; }

• Loop runs forever — must kill program

Common Error: Infinite Loops

Page 10: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

• Example:

int years = 20; while (years > 0) { years++; // Oops, should have been years-- double interest = balance * rate / 100; balance = balance + interest; }

• Loop runs forever — must kill program

Common Error: Infinite Loops

Page 11: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

• Example:

for (int i = 1; i <= n; i++) { double interest = balance * rate / 100; balance = balance + interest;}

• Use a for loop when a variable runs from a starting value to an ending value with a constant increment or decrement

for Loops

Page 12: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

Syntax 6.2 The for Statement

Page 13: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

for Loop Flowchart

Page 14: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

for Loop Examples

Page 15: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

Execution of

a for Loop

Page 16: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

Rewrite as a for loop.

Answer:

int i = 1; while (i <= n) { double interest = balance * rate / 100; balance = balance + interest; i++; }

Question

Page 17: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

How many times does the following for loop execute?

for (i = 0; i <= 10; i++) System.out.println(i * i);

Answer:

Question

Page 18: Random Number Generation public class Hand { private int card1; private int card2; private int card3; private Random rand; public static final int NO_CARD

• A missing semicolon:sum = 0;for (i = 1; (i <= 10) i++); sum = sum + i;System.out.println(sum);

• A semicolon that shouldn’t be there:sum = 0;for (i = 1; i <= 10; i++); sum = sum + i;System.out.println(sum);

Common Errors: Semicolons