chapter 3 decision structures
DESCRIPTION
Chapter 3 Decision Structures. Contents. The if Statement The if-else Statement The if-else-if Statement Nested if Statement Logical Operators Comparing String Objects More about Variable Declaration and Scope. Contents (Cont’d). The Conditional Operators - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/1.jpg)
1
Chapter 3Decision Structures
![Page 2: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/2.jpg)
2
Contents1. The if Statement2. The if-else Statement3. The if-else-if Statement4. Nested if Statement5. Logical Operators6. Comparing String Objects7. More about Variable Declaration and
Scope
![Page 3: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/3.jpg)
3
Contents (Cont’d)8. The Conditional Operators 9. The Switch Statement10.Creating Objects with the
DecimalFormat Class11.The printf Method
![Page 4: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/4.jpg)
4
1. 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.
![Page 5: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/5.jpg)
5
1. The if Statement (Cont’d)
![Page 6: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/6.jpg)
6
1. The if Statement (Cont’d)
![Page 7: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/7.jpg)
7
1. The if Statement (Cont’d) Simple decision structure logic
![Page 8: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/8.jpg)
8
1. 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.
![Page 9: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/9.jpg)
9
Using Relational Operators to Form Conditions Typically, the boolean expression is
formed with a relational operator (binary operator.
Relational Operators(in order of precedence)
Meaning
> Greater< Less than>= Greater than or equal to<= Less than or equal to== Equal to!= Not equal to
![Page 10: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/10.jpg)
10
Using Relational Operators to Form Conditions (Cont’d) Assuming that a is 4, b is 6, and c
is 4 b>=a true c<=a true a>=5 false c==6 false b!=6 false
![Page 11: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/11.jpg)
11
Programming 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”);
![Page 12: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/12.jpg)
12
Be Careful with Semicolonsif(BooleanExpression)
statement;
int x = 0, y = 10;if(x > y);
System.out.println(x + “is greater than “ + y);
No semicolon here
Semicolon goes here
It will always execute.
![Page 13: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/13.jpg)
13
Multiple Conditionally Executed Statements Enclosing a group of statements by
braces
if(sales > 5000){bonus = 500.0;commissionRate = 0.12;dayOff += 1;
}
These three statements are executed if sales is greater than 5000
![Page 14: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/14.jpg)
14
Comparing 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.”);
![Page 15: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/15.jpg)
15
Comparing 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.
![Page 16: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/16.jpg)
16
2. The if-else statement Problem
Write a program to get two numbers and divide the first number by the second number.
![Page 17: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/17.jpg)
17
2. The if-else statement
![Page 18: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/18.jpg)
18
![Page 19: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/19.jpg)
19
2. The if-else statement
![Page 20: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/20.jpg)
20
Logic of the if-else Statement
![Page 21: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/21.jpg)
21
Logic of the if-else Statement (Cont’d) The if-else statement will
execute one group of statement if its boolean expression is true, or another group if its boolean expression is false.if(BooleanExpression)
statement or blockelse
statement or block
![Page 22: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/22.jpg)
22
3. 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.
score < 60 F 60 <= score < 70 D 70 <= score < 80 C 80 <= score < 90 B 90 <= score <= 100 A score > 100 Invalid score
![Page 23: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/23.jpg)
23
![Page 24: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/24.jpg)
24
![Page 25: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/25.jpg)
25
Logic of the if-else-if StatementLogic of the if-
else-if Statement
![Page 26: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/26.jpg)
26
3. 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)statement or block
////Put as many else if statement as needed here//elsestatement or block
![Page 27: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/27.jpg)
27
4. Nested if Statement Problem
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.
![Page 28: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/28.jpg)
28
4. Nested if Statement Input
User’s annual salary Number of years at the current job
![Page 29: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/29.jpg)
29
![Page 30: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/30.jpg)
30
![Page 31: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/31.jpg)
31
4. 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.
![Page 32: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/32.jpg)
32
Alignment of if and else clauses
![Page 33: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/33.jpg)
33
5. Logical Operators Logical operators connect two or
more relational expressions into one or reverse the logic of an expression.
Java provides two binary logical operators
&& : AND || : OR
one unary logical operator ! : NOT
![Page 34: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/34.jpg)
34
5. Logical Operators (Cont’d)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.
![Page 35: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/35.jpg)
35
5. Logical Operators (Cont’d)
Expression Meaningx > y && a < b Is x greater than y AND is a less than b?x == y || x == z Is x equal to y OR is x equal to z?!(x > y) Is the expression x > y NOT true?
![Page 36: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/36.jpg)
36
The && 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.
x y x && ytrue true true
true false false
false true false
false false false
![Page 37: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/37.jpg)
37
The && Operator (Cont’d) A different version of the
LoanQualifier program
![Page 38: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/38.jpg)
38
![Page 39: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/39.jpg)
39
The || 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.
x y X || ytrue true true
true false true
false true true
false false false
![Page 40: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/40.jpg)
40
The || Operator Problem
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.
![Page 41: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/41.jpg)
41
The || Operator (Cont’d) Input
User’s annual salary Number of years at the current job
![Page 42: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/42.jpg)
42
A Better Solution
![Page 43: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/43.jpg)
43
![Page 44: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/44.jpg)
44
The ! Operator The ! Operator performs a logical
NOT operation
!(x > 1000) x <= 1000
x !xtrue false
false true
![Page 45: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/45.jpg)
45
The Precedence and Associativity of Logical Operators The logical operators have orders of
precedence and associativity. The precedence of the logical operators, from
highest to lowest!&&||
!(x > 2) Applies the ! operator to the expression x > 2
!x > 2 Causes a compiler error
![Page 46: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/46.jpg)
46
The Precedence and Associativity of Logical Operators (Cont’d) The && and || operators rank lower in precedence
than the relational operators(a > b) && (x < y) a > b && x < y(x == y) || (b > a) x == y || b > a
The logical operators evaluate their expression from left to right
a < b || y == z a < b is evaluated before y == z
a < b || y == z && m > j y == z is evaluated first because the && operator has higher
precedence than || Is equivalent to the following(a < b) || ((y == z) && (m > j))
![Page 47: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/47.jpg)
47
The Precedence and Associativity of Logical Operators (Cont’d)
Order of Precedence
Operators
1 - (unary negation) !2 * / %
3 + =
4 < > <= >=
5 == !=
6 &&
7 ||
8 = += -= *= /= %=
![Page 48: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/48.jpg)
48
Checking 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 x < 20 || x > 40
20,40x
20,40x
![Page 49: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/49.jpg)
49
6. 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”;
name1 == name2 will be false because the variables name1 and name2 reference different objects.
![Page 50: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/50.jpg)
50
6. Comparing String Objectsif(name1 == name2)
![Page 51: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/51.jpg)
51
6. 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.
![Page 52: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/52.jpg)
52
![Page 53: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/53.jpg)
53
6. Comparing String Objects Comparing String objects to
string literals Pass the string literal as the argument
to the equals method
if(name1.equals(“Mark”))
![Page 54: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/54.jpg)
54
6. 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.compareTo(OtherString) StringReference is a variable that
references a String object, OtherString is either another variable that references a String object or a string literal.
![Page 55: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/55.jpg)
55
6. 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
![Page 56: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/56.jpg)
56
6. Comparing String Objects
![Page 57: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/57.jpg)
57
6. Comparing String Objects String comparison of “Mary” and
“Mark” The character ‘y’ is greater than ‘k’,
so “Mary” is greater than “Mark”.
![Page 58: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/58.jpg)
58
Ignore Case in String Comparisons The equals and compareTo methods
perform case sensitive comparisons. In other words, “A” is not the same as “a”.
The String class provides the equalsIgnoreCase and compareToIgnoreCase methods
The case of characters in strings is ignored.
![Page 59: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/59.jpg)
59
![Page 60: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/60.jpg)
60
![Page 61: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/61.jpg)
61
![Page 62: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/62.jpg)
62
![Page 63: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/63.jpg)
63
7. 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.
![Page 64: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/64.jpg)
64
7. 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.
![Page 65: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/65.jpg)
65
7. More about Variable Declaration and Scope
![Page 66: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/66.jpg)
66
The 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.
![Page 67: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/67.jpg)
67
The Conditional Operator (Cont’d)
x < 0 ? y = 10 : z = 20;
if(x < 0) y = 10;
elsez = 20;
![Page 68: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/68.jpg)
68
The Conditional Operator (Cont’d) We can put parentheses around
the subexpressions in a conditional expression
(x < 0) ? (y = 10) : (z = 20);
![Page 69: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/69.jpg)
69
Using 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;
![Page 70: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/70.jpg)
70
Using the Value of a Conditional Expression (Cont’d)
number = x > 100 ? 20 : 50;
if(x > 100) number = 20;
elsenumber = 50;
![Page 71: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/71.jpg)
71
Using the Value of a Conditional Expression (Cont’d)System.out.println(“Your grade is: “ +
(score < 60 ? “Fail” : “Pass”));
if(score < 60)Systym.out.println(“Your grade is: Fail.“);
elseSystym.out.println(“Your grade is: Pass.“);
![Page 72: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/72.jpg)
72
7. 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.
![Page 73: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/73.jpg)
73
7. 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.
![Page 74: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/74.jpg)
74
7. The switch Statement (Cont’d)switch(SwitchExpression){
case CaseExpression1:// place one or more statements herebreak;case CaseExpression2:// place one or more statements herebreak;
// case statements may be repeated as many // times as necessary
default:// place one or more statements here
}
![Page 75: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/75.jpg)
75
7. 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.
![Page 76: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/76.jpg)
76
7. The switch Statement (Cont’d)if(SwitchExpression == CaseExpression1)
// place statement hereelse if(SwitchExpression == CaseExpression2)
// place statement here
// else if statements may be repeated// as many times as necessary
else// place statement here
![Page 77: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/77.jpg)
77
7. The switch Statement (Cont’d)
![Page 78: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/78.jpg)
78
![Page 79: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/79.jpg)
79
7. 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.
![Page 80: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/80.jpg)
80
Without break Statement Without break statement, the
program falls through all the statements below the one with the matching case expression.
![Page 81: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/81.jpg)
81
Without break Statement
![Page 82: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/82.jpg)
82
![Page 83: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/83.jpg)
83
Without 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.
![Page 84: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/84.jpg)
84
Without break Statement
![Page 85: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/85.jpg)
85
![Page 86: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/86.jpg)
86
10. 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.
![Page 87: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/87.jpg)
87
10. 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 ?
![Page 88: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/88.jpg)
88
10. Creating Objects with the DecimalFormat class (Cont’d) Using the DecimalFormat class
import java.text.DecimalFormat; Create an object of the DecimalFormat class
DecimalFormat formatter;formatter = new DecimalFormat(“#0.00”);
Constructor Is automatically executed To initialize the object’s attributes with appropriate data and
perform any necessary setup operations.
constructor
format pattern
![Page 89: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/89.jpg)
89
10. 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.
![Page 90: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/90.jpg)
90
“#0.00”
![Page 91: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/91.jpg)
91
“000.00”
![Page 92: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/92.jpg)
92
“#,##0.00”
![Page 93: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/93.jpg)
93
“#0%” 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.
![Page 94: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/94.jpg)
94
“#0%”
![Page 95: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/95.jpg)
95
The printf Method The System.out.printf method
allows you to format output in a variety of ways.
System.out.printf(FormatString, ArgumentList)
contains text and/or special
formatting specifiers.
is a list of zero or more
additional arguments.
![Page 96: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/96.jpg)
96
Format 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.
![Page 97: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/97.jpg)
97
Format Specifiers %nd : the number should be printed in
a field that is n places wide.int nunber = 9;System.out.printf(“The value is %6d.\n”, number);
The value is 9. If the field is wider than the specified width,
the field width will be expanded to accommodate the value.
int nunber = 97654;System.out.printf(“The value is %2d.\n”, number);
The value is97654.
![Page 98: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/98.jpg)
98
Format Specifiers %f : to print a floating-point numberdouble nunber = 1278.92;System.out.printf(“The value is %f.\n”, number);
The value is 1279.920000.
double nunber = 1278.92;System.out.printf(“The value is %18f.\n”, number);
The value is 1279.920000;
double nunber = 1278.92714;System.out.printf(“The value is %8.2f.\n”, number);
The value is 1278.93.
![Page 99: Chapter 3 Decision Structures](https://reader035.vdocuments.mx/reader035/viewer/2022081505/56815f05550346895dcdc593/html5/thumbnails/99.jpg)
99
Format Specifiersdouble nunber = 1253874.92714;System.out.printf(“The value is %,.2f.\n”, number);
The value is 1,253,874.93.
%s : To print a string argumentString 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.