Weekly Report Chapter 3 Decision Structures 1 Contents 1 The if Statement 2 The if else Statement 3 The if else if Statement 4 Nested if Statement 5 Logical Operators 6 Comparing String Objects 7 More.
Trang 1Chapter 3
Decision Structures
1
Trang 21 The if Statement
2 The if-else Statement
3 The if-else-if Statement
4 Nested if Statement
5 Logical Operators
6 Comparing String Objects
7 More about Variable Declaration and
Scope
2
Trang 3Contents (Cont’d)
8 The Conditional Operators
9 The Switch Statement
10.Creating Objects with the
DecimalFormat Class
11.The printf Method
3
Trang 41 The if Statement
Problem:
Write a program to calculate user’s
average of 3 test scores If the average is greater than 95, the program congratulates the users on obtaining a high score.
4
Trang 51 The if Statement (Cont’d)
5
Trang 61 The if Statement (Cont’d)
6
Trang 71 The if Statement (Cont’d)
Simple decision structure logic
7
Trang 81 The if Statement (Cont’d)
if(BooleanExpression)
statement;
The BooleanExpression must be a boolean
expression
A boolean expression is either true or false
If the BooleanExpression is true, the very
next statement is executed Otherwise, it is
skipped.
The statement is conditionally executed because
it only executes under the condition that the
expression in the parentheses is true.
8
Trang 9Using Relational Operators to Form Conditions
Typically, the boolean expression is
formed with a relational operator (binary operator.
>= Greater than or equal to
<= Less than or equal to
!= Not equal to
Trang 10Using Relational Operators to Form Conditions (Cont’d)
Assuming that a is 4, b is 6, and c is
Trang 11Programming Style and the if Statement
Two important style rules
The conditionally executed statement should appear on the line after the if statement.
The conditionally executed statement should
be indented on level from the if statement.
if(value>32)
System.out.println(“Invalid number”);
if(value>32) System.out.println(“Invalid number”);
11
Trang 12Be Careful with Semicolons
Trang 13Multiple Conditionally Executed Statements
Enclosing a group of statements by
braces
if(sales > 5000) {
Trang 14Comparing Characters
Using the relational operators to test
character data as well as number
Assuming ch is a char variable:
Compare ch to the character ‘A’:
if(ch==‘A’)
System.out.println(“The letter is A.”);
Compare the ch is not equal to ‘A’:
if(ch!=‘A’)
System.out.println(“Not the letter is A.”);
14
Trang 15Comparing Characters
(Cont’d)
In Unicode, letters are arranged in
alphabetic order:
‘A’ comes before ‘B’, the numeric code of
‘A’ (65) is less than the code of ‘B’ (66).
‘A’ < ‘B’ true
In Unicode, the uppercase letters
come before the lowercase letter
15
Trang 162 The if-else statement
Trang 172 The if-else statement
17
Trang 192 The if-else statement
19
Trang 20Logic of the if-else
Statement
20
Trang 21Logic of the if-else
Statement (Cont’d)
The if-else statement will execute
one group of statement if its booleanexpression is true, or another group
if its boolean expression is false
Trang 223 The if-else-if
Statement
Problem
Write a program to ask the user to enter a
numeric test score Display a letter grade (A,
B, C, D, or F) for the score.
Trang 25Logic of the if-else-if
Statement
25
Logic of the
if-else-if Statement
Trang 263 The if-else-if
Statement
The if-else-if statement is a chain of if-else
statements Each statement in the chain performs its test until one of the tests is found to be true.
if(BooleanExpression)
statement or block else if(BooleanExpression)
Trang 274 Nested if Statement
Write a Java program to determine
whether a bank customer qualifies for a
loan To qualify, a customer must earn at least $30,000 per year, and must have
been on his or her current job for at least two years.
27
Trang 284 Nested if Statement
Input
User’s annual salary
Number of years at the current job
28
Trang 314 Nested if Statement
(Cont’d)
An if statement appears inside
another if statement, it is considered nested
The rule for matching else clauses
with if clauses is this:
An else clause goes with the closet
previous if clause that doesn’t already
have its own else clause.
31
Trang 32Alignment of if and else
clauses
32
Trang 335 Logical Operators
Logical operators connect two or more
relational expressions into one or
reverse the logic of an expression
Trang 345 Logical Operators (Cont’d)
34
Operator Meaning Effect
&& AND Connects two boolean expression into one
Both expressions must be true for the overall expression to be true.
|| OR Connects two boolean expression into one
One or both expressions must be true for the overall expression to be true It is only necessary for one to be true, and it does not matter which one.
! NOT Reverses the truth of a boolean expression
If it is applied to an expression that is true, the operator returns false If it is applied to
an expression that is false, the operator return true.
Trang 355 Logical Operators (Cont’d)
Trang 36The && Operator
The && performs short-circuit evaluation
If the expression on the left side of the &&
operator is false, the expression on the right side will not be checked.
36
true true true
true false false false true false false false false
Trang 37The && Operator (Cont’d)
A different version of the
LoanQualifier program
37
Trang 39The || Operator
The || performs short-circuit evaluation
If the expression on the left side of the ||
operator is true, the expression on the right side will not be checked.
39
true true true true false true false true true
false false false
Trang 40The || Operator
Write a Java program to determine
whether a bank customer qualifies for a
loan To qualify, a customer must earn at least $30,000 per year, OR must have
been on his or her current job for at least two years.
40
Trang 41The || Operator (Cont’d)
Input
User’s annual salary
Number of years at the current job
41
Trang 42A Better Solution
42
Trang 45The Precedence and Associativity
of Logical Operators
The logical operators have orders of
precedence and associativity.
The precedence of the logical operators, from
Trang 46The Precedence and Associativity
of Logical Operators (Cont’d)
The && and || operators rank lower in precedence than
the relational operators
Trang 47The Precedence and Associativity
of Logical Operators (Cont’d)
Trang 48Checking Numeric Ranges
with Logical Operators
Determining whether a numeric value
is within a specific range of values
Using the && operator
x >= 20 && x <= 40
Determining whether a numeric value
is outside a specific range of values
Using the || operator
Trang 496 Comparing String Objects
We cannot use relational operators to
compare String objects Instead we must use a String method
String name1 = “Marks”;
String name2 = “Mary”;
because the variables name1 and
name2 reference different objects
49
Trang 506 Comparing String Objects
if(name1 == name2)
50
Trang 516 Comparing String Objects
To compare the contents of two
String objects correctly using the method equals of String class
if(name1.equal(name2))
The equals method returns true if they are the same, or false if they are not the same.
51
Trang 536 Comparing String Objects
Comparing String objects to string
Trang 546 Comparing String Objects
The compareTo method of the
String class
To determine whether one string is greater than, equal to, or less than another string.
StringReference is a variable that
references a String object, OtherString is
either another variable that references a String object or a string literal.
54
Trang 556 Comparing String Objects
If the method’s return value
< 0 : the string referenced by
StringReference is less than the
OtherString argument
0 : The two strings are equal.
> 0 : the string referenced by
StringReference is greater than the
OtherString argument
55
Trang 566 Comparing String Objects
56
Trang 576 Comparing String Objects
String comparison of “Mary” and
“Mark”
The character ‘y’ is greater than ‘k’, so
“Mary” is greater than “Mark”.
57
Trang 58Ignore Case in String
Comparisons
methods perform case sensitive
comparisons In other words, “A” is
not the same as “a”
The String class provides the
Trang 637 More about Variable
Declaration and Scope
The scope of a variable is limited to the
block in which it is declared.
It is a common practice to declare all of a
method’s local variables at the beginning
of the method, it is possible to declare
them at later points.
Sometimes programmers declare certain
variables near the part of the program where they are used in order to make their purpose more evident.
63
Trang 647 More about Variable
Declaration and Scope
A local variable’s scope always
starts at the variable’s declaration
ends at the closing brace of the block of code in which it is declared.
64
Trang 657 More about Variable
Declaration and Scope
65
Trang 66The Conditional Operator
The conditional operator (a ternary
operator) is used to create short
expressions that work like if-else
statements.
Expression1 ? Expression2 : Expression3
Exprerssion1 is a boolean expression
If Expression1 is true, then
Expression2 is executed Otherwise
Expression3 is executed.
66
Trang 67The Conditional Operator
Trang 68The Conditional Operator
Trang 69Using the Value of a
Conditional Expression
The conditional expression also returns
a value
If Expression1 is true, the value of
the conditional expression is the value
of Expression2 Otherwise it is the value of Expression3.
number = x > 100 ? 20 : 50;
69
Trang 70Using the Value of a Conditional Expression (Cont’d)
Trang 71Using the Value of a Conditional Expression (Cont’d)
System.out.println(“Your grade is: “ +
(score < 60 ? “Fail” : “Pass”));
Trang 727 The switch Statement
The switch statement lets the value of
a variable or expression determine where the program will branch to.
The if-else-if statement allows the
program to branch into one of several
possible paths It tests a series of
boolean expressions, and branches if
one of those expression is true.
72
Trang 737 The switch Statement
(Cont’d)
The switch statement tests the value
of an integer or character expression and then uses that value to determine which set of statements to branch to
73
Trang 747 The switch Statement
Trang 757 The switch Statement
(Cont’d)
The SwitchExpression is an expression that
must result in a value of one of these types:
char, byte, short, or int.
The CaseExpression is a literal or a final
variable which must be of the char, byte,
short, or int types.
The CaseExpressions of each case statement
must be unique.
The default section is optional If we leave it
out, the program will have nowhere to branch to
if the SwitchExpression doesn’t match any of
CaseExpressions.
75
Trang 767 The switch Statement
(Cont’d)
if(SwitchExpression == CaseExpression1)
// place statement here
else if(SwitchExpression == CaseExpression2)
// place statement here
// else if statements may be repeated
// as many times as necessary
else
// place statement here
76
Trang 777 The switch Statement
(Cont’d)
77
Trang 797 The switch Statement
(Cont’d)
The case statements show where to start
executing in the block and the break
statements show the program where to stop
Without break statements, the program
would execute all of the lines from the
matching case statement to the end of the block.
The default section (or the last case
section if there is no default) does not need a break statement
79
Trang 80Without break Statement
Without break statement, the
program falls through all the
statements below the one with the
matching case expression
80
Trang 81Without break Statement
81
Trang 83Without break Statement !
Write a program that asks the user to
select a grade of pet food The
available choices are A, B, and C The program will recognize either
uppercase or lowercase letters
83
Trang 84Without break Statement
84
Trang 8610 Creating Objects with the DecimalFormat class
DecimalFormat class can be used to
format the appearance of floating-point numbers rounded to a specified number
of decimal places.
In Java, a value of the double type can
be displayed with as many as 15 decimal places, and a value of float type can
be displayed with up to 6 decimal places.
86
Trang 8710 Creating Objects with the
DecimalFormat class (Cont’d)
double number;
number = 10.0/6;
System.out.println(number);
1.666666666666667
How to control the number of decimal
places that are displayed ?
87
Trang 8810 Creating Objects with the
DecimalFormat class (Cont’d)
Using the DecimalFormat class
perform any necessary setup operations.
88
constructor
format pattern
Trang 8910 Creating Objects with the
DecimalFormat class (Cont’d)
#: specifies that a digit should be displayed if
it is present If there is no digit in this
position, no digit should be displayed.
0: specifies that a digit should be displayed in
this position if it is present If there is no digit
in this position, a 0 should be displayed.
89
Trang 9090
Trang 9191
Trang 9292
Trang 93 Formatting numbers as percentages
Writing the % character at the last position
in the format pattern This causes a
number to be multiplied by 100, and the % character is appended to its end.
93
Trang 9494
Trang 95The printf Method
allows you to format output in a
variety of ways
System.out.printf(FormatString, ArgumentList)
95
contains text and/or special formatting specifiers.
is a list of zero
or more additional arguments.
Trang 96Format Specifiers
%d : For a decimal integer
int hours = 40;
System.out.printf(“I worked %d hours this week.\n”, hours);
I worked 40 hours this week.
int dogs = 2;
int cats = 4;
System.out.printf(“We have %d dogs and %d cats.\n”, dogs, cats);
We have 4 dogs and 2 cats.
96
Trang 97Format Specifiers
%nd : the number should be printed in a
field that is n places wide.
System.out.printf(“The value is %2d.\n”, number);
The value is97654.
97
Trang 99Format Specifiers
double nunber = 1253874.92714;
System.out.printf(“The value is %,.2f.\n”, number);
The value is 1,253,874.93.
%s : To print a string argument
String name = “Ringo”;
System.out.printf(“My name is %s.\n”, name);
My name is Ringo.
String name = “Ringo”;
System.out.printf(“My name is %10s.\n”, name);
My name is Ringo.
99