Transcript equal.

Chapter 5
Relational Operators
Relational
Operator
<
<=
>
>=
Equality
Operator
==
!=
Slide 1
Meaning
less than
less than or equal
greater than
greater than or equal
Meaning
equal
not equal
© 2005 Lawrenceville Press
Chapter 5
The if Statement
 Conditional control structure, also called a decision
structure
 Executes a set of statements when a condition is
true
 The condition is a Boolean expression
 For example, the statement
if (x == 5) {
y = 20;
}
assigns the value 20 to y only if x is equal to 5.
Slide 2
© 2005 Lawrenceville Press
Chapter 5
Roundoff Error
 Occurs when a floating point number cannot be
exactly represented in binary notation by the
computer
 Can cause semantic errors in an if statement. For
example, the condition in the statement
if ((4.80 * 100 - 480) == 0) {
System.out.println("Zero.");
}
does not evaluate to true because 4.80 can be
represented exactly in binary.
Slide 3
© 2005 Lawrenceville Press
Comparing Objects
Objects can be tested for equality, but not relationship.
x.equals(y)
Is true if the objects that x and y represent are “equal.”
Every Java class supports the equals method.
The definition of equals varies from class to class.
Slide 4
© 2005 Lawrenceville Press
String comparisons
Strings are objects, so don’t use == operator
Use:
str1.compareTo(str2);
Returns:
<0 if str1 < str2
==0 if str1==str2
>0 if str1 > str2
Slide 5
© 2005 Lawrenceville Press
How Strings really compared…
Java uses lexicogrpahic order
From the word lexicography – the process of
compiling a dictionary.
‘a’ comes before ‘m’
‘1’ comes before ‘7’
‘ab’ comes before ‘above’
In the ASCII code ‘1’ comes before ‘A’ which
comes before ‘a’
Slide 6
© 2005 Lawrenceville Press
Quick Review!
1.
To determine whether one number is greater
than or equal to another, we would use a
________ type operator.
2.
The == and != symbols are called _________
operators.
3.
Why is it not a good idea to test whether two
doubles are equal?
4.
What method is used to test whether two
objects are equal?
5.
What method is used to test whether two
Strings are equal?
Slide 7
© 2005 Lawrenceville Press
Chapter 5
The if-else Statement
Contains an else clause that is executed when
the if condition evaluates to false. For
example, the statement
if (x == 5) {
y = 20;
} else {
y = 10;
}
assigns the value 20 to y if x is equal to 5 or
the value 10 if x is not equal to 5.
Slide 8
© 2005 Lawrenceville Press
Chapter 5
Nested if-else Statements
 Should be indented to make the logic clear.
 Nested statement executed only when the
branch it is in is executed. For example, the
statement
if (x == 5) {
y = 20;
} else {
if (x > 5) {
y = 10;
} else {
y = 0;
}
}
evaluates the nested if-else only when x is not
equal
to 5.
© 2005 Lawrenceville Press
Slide
9
Chapter 5
The if-else if Statement
 Used to decide among three or more actions.
 Conditions must be properly ordered for the
statement to evaluate as expected. For
example, the statement
if (x < 5) {
y = 20;
} else if (x < 10) {
y = 40;
} else if (x < 15) {
y = 80;
}
would give very different results if the
conditions were ordered differently.
Slide 10
© 2005 Lawrenceville Press
Chapter 5
The switch Statement
 Used to decide among three or more actions.
 Uses an expression that evaluates to an integer.
 The break statement moves program execution to the
next statement after the switch.
 The default code is optional and is executed when none
of the previous cases are met:
switch (numLegs) {
case 2: System.out.println("human"); break;
case 4: System.out.println("beast"); break;
case 8: System.out.println("insect"); break;
default: System.out.println("???"); break;
}
Slide 11
© 2005 Lawrenceville Press
Chapter 5
The Random Class
 Part of the java.util package
 A Random object can generate random
integers (nextInt()) or random floating point
numbers (nextDouble()). For example,
Random r = new Random;
int numLessThan10;
numLessThan10 = r.nextInt(10); //0-9
 A random integer in a range is generated by
using the formula:
r.nextInt(highNum – lowNum + 1) + lowNum
Slide 12
© 2005 Lawrenceville Press
Chapter 5
Compound Boolean Expressions
 More than one Boolean expression in a single
condition.
 Formed using the logical And (&&), logical Or (||), or
logical Not (!) operators.
•
Precedence: !, &&, ||
Slide 13
© 2005 Lawrenceville Press
Chapter 5
And Truth Table
And
Exp1
Exp2
Result
True
True
True
True
False
False
False
True
False
False
False
False
Slide 14
© 2005 Lawrenceville Press
Chapter 5
Or Truth Table
Or
Exp1
Exp2
Result
True
True
True
True
False
True
False
True
True
False
False
False
Slide 15
© 2005 Lawrenceville Press
Chapter 5
Not Truth Table
Not
Slide 16
Exp
Result
True
False
False
True
© 2005 Lawrenceville Press
Compiler Ambiguity
a+b*c
Could mean:
(a + b) * c
Or
a + (b * c)
Java compiler resolves ambiguity in expressions by
rules of precedence and associativity.
We know that the correct interpretations of a+b*c
is…
Slide 17
© 2005 Lawrenceville Press
Okay AP students…
a + (b * c)
We can force the other
interpretation by using
parentheses.
Slide 18
© 2005 Lawrenceville Press
Chapter 5
The Math Class
 Part of the java.lang package
 Methods include:
abs(num)
returns the absolute
value of num
pow(num1, num2)
returns num1 raised to
the num2 power
sqrt(num)
returns the square root
of num, where num is a
positive number
Slide 19
© 2005 Lawrenceville Press
Random Numbers
Linear Congruential Method – Uses a formula to compute the
random list of numbers. This method does not produce truly
random numbers, because at some point the numbers
repeat.
In Programming – random numbers are referred to ask
pseudorandom .
The Random class resides in the java.util package.
Some of the random class methods are:
nextInt( ) returns the next random integer in the the random
number generator’s sequence.
nextInt (n) returns the next random integer (inclusive) from 0
to n.
nextDouble ( ) returns the next random double from 0.0 to 1.0.
Slide 20
© 2005 Lawrenceville Press
Implementation of random
import java.util.Random;
Public static void main (String[] args) {
Random rnumber = new Random( );
System.out.println(“The first random number is
:”+r.nextInt(100);
System.out.println(“The second random number is
:”+r.nextInt(100);
}
Slide 21
© 2005 Lawrenceville Press
Chapter 5
Flowchart Symbols
decision
Slide 22
© 2005 Lawrenceville Press
Chapter 5
The RPS Flowchart
Slide 23
© 2005 Lawrenceville Press
Flowchart decision possibilities
no
Slide 24
yes
© 2005 Lawrenceville Press
Flowchart decision possibilities
no
Slide 25
yes
© 2005 Lawrenceville Press
Flowchart decision possibilities
yes
no
yes
no
yes
no
Slide 26
Common exit point
© 2005 Lawrenceville Press
HOMEWORK
The Case of the Dangling ELSE
if (n <= max)
if (n > 0)
sum += n;
else
sum +=max;
------------------------------------------------------------1st run n = 0; max = 4
2nd run n=8; max = 6
What is the value of max after each run?
DO NOT ASK ME FOR HELP!
Slide 27
© 2005 Lawrenceville Press