list of slidesjtl/jjit/supportmaterial/lectureslides/ch04.pdf · list of slides 1 title 2 chapter...

47
List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim 6 Execution: conditional execution 7 Expression: boolean 8 Expression: boolean: relational operators 11 Oldest spouse 1 12 Statement: if else statement 14 Oldest spouse 1 15 Trying it 16 Coursework: MaxTwoDoubles 17 Section 3: Example:Oldest spouse 2 18 Aim 19 Statement: if else statement: nested 0-0

Upload: others

Post on 26-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

List of Slides

1 Title2 Chapter 4: Conditional execution3 Chapter aims4 Section 2: Example:Oldest spouse 15 Aim6 Execution: conditional execution7 Expression: boolean8 Expression: boolean: relational operators

11 Oldest spouse 112 Statement: if else statement14 Oldest spouse 115 Trying it16 Coursework: MaxTwoDoubles17 Section 3: Example:Oldest spouse 218 Aim19 Statement: if else statement: nested

0-0

Page 2: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

21 Oldest spouse 222 Oldest spouse 223 Trying it24 Trying it25 Trying it26 Trying it27 Coursework: DegreeCategory28 Section 4: Example:Film certificate age checking29 Aim30 Statement: if statement31 Film certificate age checking32 Trying it33 Trying it34 Trying it35 Coursework: PassFailDistinction36 Section 5: Example:Absolute difference37 Aim38 Statement: compound statement

0-1

Page 3: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

40 Absolute difference42 Trying it43 Trying it44 Concepts covered in this chapter

0-2

Page 4: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Title

Java Just in Time

John Latham

October 8, 2018

October 8, 2018 Java Just in Time - John Latham Page 1(0/0)

Page 5: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Chapter 4

Conditional execution

October 8, 2018 Java Just in Time - John Latham Page 2(0/0)

Page 6: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Chapter aims

• Not every part of a program need be executed every time.

– Some parts only under certain conditions.

• We meet if statements and if else statements.

October 8, 2018 Java Just in Time - John Latham Page 3(0/0)

Page 7: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Section 2

Example:

Oldest spouse 1

October 8, 2018 Java Just in Time - John Latham Page 4(0/0)

Page 8: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Aim

AIM: To introduce the idea of conditional execution, imple-

mented by the if else statement, and controlled by

boolean expressions based on the use of relational op-

erators.

October 8, 2018 Java Just in Time - John Latham Page 5(0/0)

Page 9: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Execution: conditional execution

• Not sufficient to always obey all instructions every run

– some problems need conditional execution

∗ execute some bits conditionally:

∗ depending on values of variables.

October 8, 2018 Java Just in Time - John Latham Page 6(0/0)

Page 10: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Expression: boolean

• An expression which evaluates to true or false

– a condition

– also called a boolean expression.

• Used for controlling conditional execution.

October 8, 2018 Java Just in Time - John Latham Page 7(0/0)

Page 11: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Expression: boolean: relational operators

• Six relational operators for comparing values to make up conditions

– show us relations between items in pairs of values

– binary infix operators. . .

– yield true or false.

October 8, 2018 Java Just in Time - John Latham Page 8(0/0)

Page 12: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Expression: boolean: relational operators

Operator Title Description

== Equal This is the equal operator, which pro-

vides the notion of equality. a == b

yields true if and only if the value of

a is the same as the value of b.

!= Not equal This is the not equal operator, provid-

ing the the notion of not equality. a

!= b yields true if and only if the value

of a is not the same as the value of b.

< Less than This is the less than operator. a < b

yields true if and only if the value of

a is less than the value of b.

October 8, 2018 Java Just in Time - John Latham Page 9(0/0)

Page 13: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Expression: boolean: relational operators

Operator Title Description

> Greater than This is the greater than operator. a > b

yields true if and only if the value of a

is greater than the value of b.

<= Less than or equal This is the less than or equal opera-

tor. a <= b yields true if and only if the

value of a is less than value of b, or is

equal to it.

>= Greater than or equal This is the greater than or equal oper-

ator. a >= b yields true if and only if

the value of a is greater than value of

b, or is equal to it.

October 8, 2018 Java Just in Time - John Latham Page 10(0/0)

Page 14: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Oldest spouse 1

Coffee

time:

Which of the following conditions are true?

a) 5 < 4 b) 5 < 5 c) 5 < 6

d) 5 > 4 e) 5 > 5 f) 5 > 6

g) 5 <= 4 h) 5 <= 5 i) 5 <= 6

j) 5 >= 4 k) 5 >= 5 l) 5 >= 6

m) 5 == 4 n) 5 == 5 o) 5 == 6

p) 5 != 4 q) 5 != 5 r) 5 != 6

s) 5 > 4 == 9 < 15 t) 5 < 4 != 9 > 15

Do the last two examples above suggest that == and !=

have a different operator precedence from the other

relational operators? If so, are they higher or lower?

October 8, 2018 Java Just in Time - John Latham Page 11(0/0)

Page 15: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Statement: if else statement

• The if else statement allows conditional execution.

• Three parts

– condition / boolean expression

– true part – statement for when condition is true

– false part – statement for when condition is false

• Syntax:

– reserved word if

– condition in brackets

– true part

– reserved word else

– false part

October 8, 2018 Java Just in Time - John Latham Page 12(0/0)

Page 16: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Statement: if else statement

• E.g. assuming variable noOfPeopleToInviteToTheStreetParty

if (noOfPeopleToInviteToTheStreetParty > 100)

System.out.println("We will need a big sound system!");

else

System.out.println("We should be okay with a normal HiFi.");

• Get one message or the other depending on

noOfPeopleToInviteToTheStreetParty – never both.

• Notice brackets, semi-colons and indentation.

October 8, 2018 Java Just in Time - John Latham Page 13(0/0)

Page 17: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Oldest spouse 1

001: public class OldestSpouse

002: {

003: public static void main(String[] args)

004: {

005: int husbandsAge = Integer.parseInt(args[0]);

006: int wifesAge = Integer.parseInt(args[1]);

007:

008: if (husbandsAge > wifesAge)

009: System.out.println("The husband is older than the wife");

010: else

011: System.out.println("The husband is not older than the wife");

012: }

013: }

October 8, 2018 Java Just in Time - John Latham Page 14(0/0)

Page 18: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Console Input / Output

$ java OldestSpouse 60 36

The husband is older than the wife

$ java OldestSpouse 37 36

The husband is older than the wife

$ java OldestSpouse 35 35

The husband is not older than the wife

$ java OldestSpouse 33 34

The husband is not older than the wife

$ java OldestSpouse 22 27

The husband is not older than the wife

$ _ Run

October 8, 2018 Java Just in Time - John Latham Page 15(0/0)

Page 19: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Coursework: MaxTwoDoubles

(Summary only)

Write a program to find the maximum of two given numbers, using an if else

statement.

October 8, 2018 Java Just in Time - John Latham Page 16(0/0)

Page 20: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Section 3

Example:

Oldest spouse 2

October 8, 2018 Java Just in Time - John Latham Page 17(0/0)

Page 21: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Aim

AIM: To introduce the idea of nesting if else statements.

October 8, 2018 Java Just in Time - John Latham Page 18(0/0)

Page 22: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Statement: if else statement: nested

• Can have if else statement nested inside another.

– i.e. true part and/or false part is another if else statement.

• E.g. Depending on noOfPeopleToInviteToTheStreetParty get one of three

messages.

if (noOfPeopleToInviteToTheStreetParty > 300)

System.out.println("We will need a Mega master 500 Watt amplifier!");

else

if (noOfPeopleToInviteToTheStreetParty > 100)

System.out.println("We will need a Maxi Master 150 Watt amplifier!");

else

System.out.println("We should be okay with a normal HiFi.");

• Notice indentation – following usual nesting rule, but. . . .

October 8, 2018 Java Just in Time - John Latham Page 19(0/0)

Page 23: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Statement: if else statement: nested

• Make exception to usual rule for if else statements nested in false parts:

if (noOfPeopleToInviteToTheStreetParty > 300)

System.out.println("We will need a Mega master 500 Watt amplifier!");

else if (noOfPeopleToInviteToTheStreetParty > 100)

System.out.println("We will need a Maxi Master 150 Watt amplifier!");

else

System.out.println("We should be okay with a normal HiFi.");

• Reflects abstraction: is one selection offering one choice from three.

• Don’t have to increase indentation if using many nested if else statements

– as long as nested in false parts.

October 8, 2018 Java Just in Time - John Latham Page 20(0/0)

Page 24: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Oldest spouse 2

Coffee

time:

If we wanted some program code to execute one out of

N choices, how many if else statements would we need?

October 8, 2018 Java Just in Time - John Latham Page 21(0/0)

Page 25: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Oldest spouse 2

001: public class OldestSpouse

002: {

003: public static void main(String[] args)

004: {

005: int husbandsAge = Integer.parseInt(args[0]);

006: int wifesAge = Integer.parseInt(args[1]);

007:

008: if (husbandsAge > wifesAge)

009: System.out.println("The husband is older than the wife");

010: else if (husbandsAge == wifesAge)

011: System.out.println("The husband is the same age as the wife");

012: else

013: System.out.println("The husband is younger than the wife");

014: }

015: }

October 8, 2018 Java Just in Time - John Latham Page 22(0/0)

Page 26: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Console Input / Output

$ java OldestSpouse 60 36

The husband is older than the wife

$ java OldestSpouse 37 36

The husband is older than the wife

$ java OldestSpouse 35 35

The husband is the same age as the wife

$ java OldestSpouse 33 34

The husband is younger than the wife

$ java OldestSpouse 22 27

The husband is younger than the wife

$ _ Run

October 8, 2018 Java Just in Time - John Latham Page 23(0/0)

Page 27: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Coffee

time:

What do you think of the following code as an alternative to the if

else statements we wrote in our program? Would it work? Is it as easy

to read?

. if (husbandsAge <= wifesAge)

. if (husbandsAge != wifesAge)

. System.out.println("The husband is younger than the wife");

. else

. System.out.println("The husband is the same age as the wife");

. else

. System.out.println("The husband is older than the wife");

October 8, 2018 Java Just in Time - John Latham Page 24(0/0)

Page 28: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Coffee

time:

What about the following code instead? What makes it better than

the code above?

. if (husbandsAge < wifesAge)

. System.out.println("The husband is younger than the wife");

. else if (husbandsAge == wifesAge)

. System.out.println("The husband is the same age as the wife");

. else

. System.out.println("The husband is older than the wife");

October 8, 2018 Java Just in Time - John Latham Page 25(0/0)

Page 29: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Coffee

time:

And finally, what about the following code? What makes it less good

than the one above?

. if (husbandsAge == wifesAge)

. System.out.println("The husband is the same age as the wife");

. else if (husbandsAge < wifesAge)

. System.out.println("The husband is younger than the wife");

. else

. System.out.println("The husband is older than the wife");

October 8, 2018 Java Just in Time - John Latham Page 26(0/0)

Page 30: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Coursework: DegreeCategory

(Summary only)

Write a program to report the degree category of a given mark.

October 8, 2018 Java Just in Time - John Latham Page 27(0/0)

Page 31: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Section 4

Example:

Film certificate age checking

October 8, 2018 Java Just in Time - John Latham Page 28(0/0)

Page 32: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Aim

AIM: To introduce the if statement without a false part.

October 8, 2018 Java Just in Time - John Latham Page 29(0/0)

Page 33: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Statement: if statement

• Sometimes want nothing done if condition is false.

• E.g. could have empty false part:

if (noOfPeopleToInviteToTheStreetParty > 500)

System.out.println("You may need an entertainment license!");

else ;

– An empty statement between else and semi-colon!

• Instead can use if statement – has no else, nor false part.

if (noOfPeopleToInviteToTheStreetParty > 500)

System.out.println("You may need an entertainment license!");

October 8, 2018 Java Just in Time - John Latham Page 30(0/0)

Page 34: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Film certificate age checking

001: public class FilmAgeCheck

002: {

003: public static void main(String[] args)

004: {

005: int minimumAge = Integer.parseInt(args[0]);

006: int ageOfPerson = Integer.parseInt(args[1]);

007: if (ageOfPerson < minimumAge)

008: System.out.println("The person is too young to watch the film!");

009: }

010: }

October 8, 2018 Java Just in Time - John Latham Page 31(0/0)

Page 35: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Console Input / Output

$ java FilmAgeCheck 18 14

The person is too young to watch the film!

$ java FilmAgeCheck 18 17

The person is too young to watch the film!

$ java FilmAgeCheck 15 15

$ java FilmAgeCheck 15 16

$ java FilmAgeCheck 12 21

$ _ Run

October 8, 2018 Java Just in Time - John Latham Page 32(0/0)

Page 36: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Coffee

time:

Under what condition will the following code print the message?

. if (noOfPeopleToInviteToTheStreetParty > 500);

. System.out.println("You may need an entertainment license!");

(Hint: count the semi-colons.)

October 8, 2018 Java Just in Time - John Latham Page 33(0/0)

Page 37: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Coffee

time:

When do we get the quiet party message with this code?

. if (noOfPeopleToInviteToTheStreetParty > 100)

. if (noOfPeopleToInviteToTheStreetParty > 500)

. System.out.println("You may need an entertainment license!");

. else

. System.out.println("It will be a fairly quiet party.");

(Hint: which if does the else match?)

October 8, 2018 Java Just in Time - John Latham Page 34(0/0)

Page 38: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Coursework: PassFailDistinction

(Summary only)

Write a program to report the pass or fail status of an exam candidate, giving

a message of distinction if appropriate using an if statement.

October 8, 2018 Java Just in Time - John Latham Page 35(0/0)

Page 39: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Section 5

Example:

Absolute difference

October 8, 2018 Java Just in Time - John Latham Page 36(0/0)

Page 40: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Aim

AIM: To introduce the compound statement.

October 8, 2018 Java Just in Time - John Latham Page 37(0/0)

Page 41: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Statement: compound statement

• The compound statement – list of statements between { and }.

– E.g. body of a method?

• Semantics – sequential execution.

• Most useful with statements containing one other statement

– but want more than one.

• E.g. conditionally get three messages:

if (noOfPeopleToInviteToTheStreetParty > 500)

{

System.out.println("You may need an entertainment license!");

System.out.println("Also hire some street cleaners for the next day?");

System.out.println("You should consider a bulk discount on lemonade!");

}

• Note: no indent between if statement and compound, only within it.

October 8, 2018 Java Just in Time - John Latham Page 38(0/0)

Page 42: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Statement: compound statement

• Less useful, compound can be empty:

if (noOfPeopleToInviteToTheStreetParty > 500)

{

System.out.println("You may need an entertainment license!");

System.out.println("Also hire some street cleaners for the next day?");

System.out.println("You should consider a bulk discount on lemonade!");

}

else {}

October 8, 2018 Java Just in Time - John Latham Page 39(0/0)

Page 43: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Absolute difference

001: public class AbsoluteDifference

002: {

003: public static void main(String[] args)

004: {

005: double firstNumber = Double.parseDouble(args[0]);

006: double secondNumber = Double.parseDouble(args[1]);

007:

008: double absoluteDifference;

009:

010: if (firstNumber > secondNumber)

011: {

012: System.out.println("The first number is larger than the second");

013: absoluteDifference = firstNumber - secondNumber;

014: }

October 8, 2018 Java Just in Time - John Latham Page 40(0/0)

Page 44: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Absolute difference

015: else if (firstNumber == secondNumber)

016: {

017: System.out.println("The two numbers are equal");

018: absoluteDifference = 0;

019: }

020: else

021: {

022: System.out.println("The second number is larger than the first");

023: absoluteDifference = secondNumber - firstNumber;

024: }

025: System.out.println("The absolute difference is " + absoluteDifference);

026: }

027: }

October 8, 2018 Java Just in Time - John Latham Page 41(0/0)

Page 45: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Console Input / Output

$ java AbsoluteDifference 123.4 123.45

The second number is larger than the first

The absolute difference is 0.04999999999999716

$ _ Run

Coffee

time:

Are you surprised by the inaccuracy of the above result?

Console Input / Output

$ java AbsoluteDifference 123.45 123.45

The two numbers are equal

The absolute difference is 0.0

$ java AbsoluteDifference 123.45 123.4

The first number is larger than the second

The absolute difference is 0.04999999999999716

$ _ Run

October 8, 2018 Java Just in Time - John Latham Page 42(0/0)

Page 46: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Trying it

Note: equality of reals is a dangerous notion. . . .

Console Input / Output

$ java AbsoluteDifference 123.45 123.450000000000001

The two numbers are equal

The absolute difference is 0.0

$ _ Run

October 8, 2018 Java Just in Time - John Latham Page 43(0/0)

Page 47: List of Slidesjtl/JJIT/supportMaterial/lectureSlides/ch04.pdf · List of Slides 1 Title 2 Chapter 4: Conditional execution 3 Chapter aims 4 Section 2: Example:Oldest spouse 1 5 Aim

Concepts covered in this chapter

• Each book chapter ends with a list of concepts covered in it.

• Each concept has with it

– a self-test question,

– and a page reference to where it was covered.

• Please use these to check your understanding before we start the next

chapter.

October 8, 2018 Java Just in Time - John Latham Page 44(0/0)