Содержание

Слайд 2

Motivations

If you assigned a negative value for radius in ComputeAreaWithConsoleInput.java, the program

Motivations If you assigned a negative value for radius in ComputeAreaWithConsoleInput.java, the
would print an invalid result. If the radius is negative, you don't want the program to compute the area. How can you deal with this situation?

Слайд 3

Objectives

To declare boolean variables and write Boolean expressions using relational operators (§3.2).
To

Objectives To declare boolean variables and write Boolean expressions using relational operators
implement selection control using one-way if statements (§3.3).
To implement selection control using two-way if-else statements (§3.4).
To implement selection control using nested if and multi-way if statements (§3.5).
To avoid common errors and pitfalls in if statements (§3.6).
To generate random numbers using the Math.random() method (§3.7).
To program using selection statements for a variety of examples (SubtractionQuiz, BMI, ComputeTax) (§§3.7–3.9).
To combine conditions using logical operators (&&, ||, and !) (§3.10).
To program using selection statements with combined conditions (LeapYear, Lottery) (§§3.11–3.12).
To implement selection control using switch statements (§3.13).
To write expressions using the conditional expression (§3.14).
To examine the rules governing operator precedence and associativity (§3.15).
To apply common techniques to debug errors (§3.16).

Слайд 4

The boolean Type and Operators

The boolean data type declares a variable with

The boolean Type and Operators The boolean data type declares a variable
the value either true or false.
Often in a program you need to compare two values, such as whether i is greater than j. Java provides six comparison operators (also known as relational operators) that can be used to compare two values. The result of the comparison is a Boolean value: true or false.
boolean b = (1 > 2);

Слайд 5

Relational Operators

Relational Operators

Слайд 6

Problem: Addition Question

AdditionQuiz

This example creates a program to let a first grader

Problem: Addition Question AdditionQuiz This example creates a program to let a
practice additions. The program randomly generates two single-digit integers number1 and number2 and displays a question such as "What is 7 + 9 = " to the student. After the student types the answer, the program displays a message to indicate whether the answer is true or false.

Animation

Слайд 7

if Statements (One Condition)

if (boolean-expression) {
statement(s);
}

if (radius >= 0) {

if Statements (One Condition) if (boolean-expression) { statement(s); } if (radius >=
area = radius * radius * PI;
System.out.println("The area"
+ " for the circle of radius "
+ radius + " is " + area);
}

An if statement is a construct that enables a program to specify alternative paths of execution.

Слайд 9

Simple if Demo

SimpleIfDemo

Write a program that prompts the user to enter an

Simple if Demo SimpleIfDemo Write a program that prompts the user to
integer. If the number is a multiple of 5, print HiFive. If the number is divisible by 2, print HiEven.

Animation

Слайд 10

İf-else Statement (2 conditions)

if (boolean-expression) {
statement(s)-for-the-true-case;
}
else {
statement(s)-for-the-false-case;
}

An if-else statement

İf-else Statement (2 conditions) if (boolean-expression) { statement(s)-for-the-true-case; } else { statement(s)-for-the-false-case;
decides the execution path based on whether the condition is true or false.

Слайд 11

if-else Example

if (radius >= 0) {
area = radius * radius

if-else Example if (radius >= 0) { area = radius * radius
* 3.14159;
System.out.println("The area for the “
+ “circle of radius " + radius +
" is " + area);
}
else {
System.out.println("Negative input");
}

Слайд 12

if Statements (more than 2 conditions)

if Statements (more than 2 conditions)

Слайд 13

if Statement (more than 2 conditions)

if Statement (more than 2 conditions)

Слайд 14

Trace if-else statement

if (score >= 90.0)
System.out.print("A");
else if (score >= 80.0)
System.out.print("B");
else

Trace if-else statement if (score >= 90.0) System.out.print("A"); else if (score >=
if (score >= 70.0)
System.out.print("C");
else if (score >= 60.0)
System.out.print("D");
else
System.out.print("F");

Suppose score is 70.0

The condition is false

Слайд 15

Trace if-else statement

if (score >= 90.0)
System.out.print("A");
else if (score >= 80.0)
System.out.print("B");
else

Trace if-else statement if (score >= 90.0) System.out.print("A"); else if (score >=
if (score >= 70.0)
System.out.print("C");
else if (score >= 60.0)
System.out.print("D");
else
System.out.print("F");

Suppose score is 70.0

The condition is false

Слайд 16

Trace if-else statement

if (score >= 90.0)
System.out.print("A");
else if (score >= 80.0)
System.out.print("B");
else

Trace if-else statement if (score >= 90.0) System.out.print("A"); else if (score >=
if (score >= 70.0)
System.out.print("C");
else if (score >= 60.0)
System.out.print("D");
else
System.out.print("F");

Suppose score is 70.0

The condition is true

Слайд 17

Trace if-else statement

if (score >= 90.0)
System.out.print("A");
else if (score >= 80.0)
System.out.print("B");
else

Trace if-else statement if (score >= 90.0) System.out.print("A"); else if (score >=
if (score >= 70.0)
System.out.print("C");
else if (score >= 60.0)
System.out.print("D");
else
System.out.print("F");

Suppose score is 70.0

grade is C

Слайд 18

Trace if-else statement

if (score >= 90.0)
System.out.print("A");
else if (score >= 80.0)
System.out.print("B");
else

Trace if-else statement if (score >= 90.0) System.out.print("A"); else if (score >=
if (score >= 70.0)
System.out.print("C");
else if (score >= 60.0)
System.out.print("D");
else
System.out.print("F");

Suppose score is 70.0

Exit the if statement

Слайд 19

Note

The else clause matches the most recent if clause in the same

Note The else clause matches the most recent if clause in the same block.
block.

Слайд 20

Note, cont.

Nothing is printed from the preceding statement. To force the else

Note, cont. Nothing is printed from the preceding statement. To force the
clause to match the first if clause, you must add a pair of braces:
int i = 1;
int j = 2;
int k = 3;
if (i > j) {
if (i > k)
System.out.println("A");
}
else
System.out.println("B");
This statement prints B.
Without block anything is printed.

Слайд 21

Common Errors

Adding a semicolon at the end of an if clause is

Common Errors Adding a semicolon at the end of an if clause
a common mistake.
if (radius >= 0);
{
area = radius*radius*PI;
System.out.println(
"The area for the circle of radius " +
radius + " is " + area);
}
This mistake is hard to find, because it is not a compilation error or a runtime error, it is a logic error.
This error often occurs when you use the next-line block style.

Wrong

Слайд 24

Problem: Subtraction Question

This example creates a program to teach a first grade

Problem: Subtraction Question This example creates a program to teach a first
child how to learn subtractions. The program randomly generates two single-digit integers number1 and number2 with number1 >= number2 and displays a question such as “What is 9 – 2 = ?” to the student. After the student types the answer, the program displays whether the answer is correct.

SubtractionQuiz

Слайд 25

Problem: Body Mass Index

Body Mass Index (BMI) is a measure of

Problem: Body Mass Index Body Mass Index (BMI) is a measure of
health on weight. It can be calculated by taking your weight in kilograms and dividing by the square of your height in meters. The interpretation of BMI for people 16 years or older is as follows:

ComputeAndInterpretBMI

Слайд 26

Problem: Computing Taxes

The US federal personal income tax is calculated based on

Problem: Computing Taxes The US federal personal income tax is calculated based
the filing status and taxable income. There are four filing statuses: single filers, married filing jointly, married filing separately, and head of household. The tax rates for 2009 are shown below.

Слайд 27

Problem: Computing Taxes, cont.

if (status == 0) {
// Compute tax for

Problem: Computing Taxes, cont. if (status == 0) { // Compute tax
single filers
}
else if (status == 1) {
// Compute tax for married file jointly
// or qualifying widow(er)
}
else if (status == 2) {
// Compute tax for married file separately
}
else if (status == 3) {
// Compute tax for head of household
}
else {
// Display wrong status
}

ComputeTax

Слайд 28

Logical Operators

The logical operators !, &&, ||, and ^ can be used

Logical Operators The logical operators !, &&, ||, and ^ can be
to create a compound Boolean expression.

Слайд 29

Truth Table for Operator !

Truth Table for Operator !

Слайд 30

Truth Table for Operator &&

Truth Table for Operator &&

Слайд 31

Truth Table for Operator ||

Truth Table for Operator ||

Слайд 32

Truth Table for Operator ^

Truth Table for Operator ^

Слайд 33

Examples

Here is a program that checks whether a number is divisible by

Examples Here is a program that checks whether a number is divisible
2 and 3, whether a number is divisible by 2 or 3, and whether a number is divisible by 2 or 3 but not both:

TestBooleanOperators

Слайд 34

Examples

System.out.println("Is " + number + " divisible by 2 and 3? "

Examples System.out.println("Is " + number + " divisible by 2 and 3?
+
((number % 2 == 0) && (number % 3 == 0)));
System.out.println("Is " + number + " divisible by 2 or 3? " +
((number % 2 == 0) || (number % 3 == 0)));
System.out.println("Is " + number +
" divisible by 2 or 3, but not both? " +
((number % 2 == 0) ^ (number % 3 == 0)));

Слайд 35

The & and | Operators

If x is 1, what is x after

The & and | Operators If x is 1, what is x
this expression?
(x > 1) & (x++ < 10)
If x is 1, what is x after this expression?
(1 > x) && ( 1 > x++)
How about (1 == x) | (10 > x++)?
(1 == x) || (10 > x++)?

Слайд 36

Problem: Determining Leap Year?

LeapYear

This program first prompts the user to enter a

Problem: Determining Leap Year? LeapYear This program first prompts the user to
year as an int value and checks if it is a leap year.
A year is a leap year if it is divisible by 4 but not by 100, or it is divisible by 400.
(year % 4 == 0 && year%100 != 0) || (year % 400 == 0)

Слайд 37

Problem: Lottery

Write a program that randomly generates a lottery of a

Problem: Lottery Write a program that randomly generates a lottery of a
two-digit number, prompts the user to enter a two-digit number, and determines whether the user wins according to the following rule:

Lottery

If the user input matches the lottery in exact order, the award is $10,000.
If the user input matches the lottery, the award is $3,000.
If one digit in the user input matches a digit in the lottery, the award is $1,000.

Слайд 38

switch Statements

switch (status) {
case 0: compute taxes for single filers;
break;

switch Statements switch (status) { case 0: compute taxes for single filers;
case 1: compute taxes for married file jointly;
break;
case 2: compute taxes for married file separately;
break;
case 3: compute taxes for head of household;
break;
default: System.out.println("Errors: invalid status");
System.exit(1);
}

Слайд 39

switch Statement Flow Chart

switch Statement Flow Chart

Слайд 40

switch Statement Rules

switch (switch-expression) {
case value1: statement(s)1;
break;
case value2: statement(s)2;

switch Statement Rules switch (switch-expression) { case value1: statement(s)1; break; case value2:
break;

case valueN: statement(s)N;
break;
default: statement(s)-for-default;
}

Слайд 41

switch Statement Rules

The keyword break is optional, but it should be used

switch Statement Rules The keyword break is optional, but it should be
at the end of each case in order to terminate the remainder of the switch statement. If the break statement is not present, the next case statement will be executed.

switch (switch-expression) {
case value1: statement(s)1;
break;
case value2: statement(s)2;
break;

case valueN: statement(s)N;
break;
default: statement(s)-for-default;
}

When the value in a case statement matches the value of the switch-expression, the statements starting from this case are executed until either a break statement or the end of the switch statement is reached.

Слайд 42

Trace switch statement

switch (day) {
case 1:
case 2:
case

Trace switch statement switch (day) { case 1: case 2: case 3:
3:
case 4:
case 5: System.out.println("Weekday"); break;
case 0:
case 6: System.out.println("Weekend");
}

Suppose day is 2:

Слайд 43

Trace switch statement

switch (day) {
case 1:
case 2:
case

Trace switch statement switch (day) { case 1: case 2: case 3:
3:
case 4:
case 5: System.out.println("Weekday"); break;
case 0:
case 6: System.out.println("Weekend");
}

Match case 2

Слайд 44

Trace switch statement

switch (day) {
case 1:
case 2:
case

Trace switch statement switch (day) { case 1: case 2: case 3:
3:
case 4:
case 5: System.out.println("Weekday"); break;
case 0:
case 6: System.out.println("Weekend");
}

Fall through case 3

Слайд 45

Trace switch statement

switch (day) {
case 1:
case 2:
case

Trace switch statement switch (day) { case 1: case 2: case 3:
3:
case 4:
case 5: System.out.println("Weekday"); break;
case 0:
case 6: System.out.println("Weekend");
}

Fall through case 4

Слайд 46

Trace switch statement

switch (day) {
case 1:
case 2:
case

Trace switch statement switch (day) { case 1: case 2: case 3:
3:
case 4:
case 5: System.out.println("Weekday"); break;
case 0:
case 6: System.out.println("Weekend");
}

Fall through case 5

Слайд 47

Trace switch statement

switch (day) {
case 1:
case 2:
case

Trace switch statement switch (day) { case 1: case 2: case 3:
3:
case 4:
case 5: System.out.println("Weekday"); break;
case 0:
case 6: System.out.println("Weekend");
}

Encounter break

Слайд 48

Trace switch statement

switch (day) {
case 1:
case 2:
case

Trace switch statement switch (day) { case 1: case 2: case 3:
3:
case 4:
case 5: System.out.println("Weekday"); break;
case 0:
case 6: System.out.println("Weekend");
}

Exit the statement

Слайд 49

Problem: Chinese Zodiac

Write a program that prompts the user to enter

Problem: Chinese Zodiac Write a program that prompts the user to enter
a year and displays the animal for the year.

ChineseZodiac

Слайд 50

Conditional Operator (?)

Syntax of conditional operator:
(boolean-expression) ? exp1 : exp2
if (num %

Conditional Operator (?) Syntax of conditional operator: (boolean-expression) ? exp1 : exp2
2 == 0)
System.out.println(num + “is even”);
else
System.out.println(num + “is odd”);
System.out.println(
(num % 2 == 0)? num + “is even” :
num + “is odd”);

Слайд 51

Conditional Expressions

if (x > 0)
y = 1
else
y =

Conditional Expressions if (x > 0) y = 1 else y =
-1;
is equivalent to
y = (x > 0) ? 1 : -1;

Слайд 52

Operator Precedence

var++, var--
+, - (Unary plus and minus), ++var,--var
(type) Casting
! (Not)
*, /,

Operator Precedence var++, var-- +, - (Unary plus and minus), ++var,--var (type)
% (Multiplication, division, and remainder)
+, - (Binary addition and subtraction)
<, <=, >, >= (Relational operators)
==, !=; (Equality)
^ (Exclusive OR)
&& (Conditional AND) Short-circuit AND
|| (Conditional OR) Short-circuit OR
=, +=, -=, *=, /=, %= (Assignment operator)

Слайд 53

Operator Precedence and Associativity

The expression in the parentheses is evaluated first. (Parentheses

Operator Precedence and Associativity The expression in the parentheses is evaluated first.
can be nested, in which case the expression in the inner parentheses is executed first.) When evaluating an expression without parentheses, the operators are applied according to the precedence rule and the associativity rule.
If operators with the same precedence are next to each other, their associativity determines the order of evaluation. All binary operators except assignment operators are left-associative.

Слайд 54

Operator Associativity

When two operators with the same precedence are evaluated, the

Operator Associativity When two operators with the same precedence are evaluated, the
associativity of the operators determines the order of evaluation. All binary operators except assignment operators are left-associative.
a – b + c – d is equivalent to  ((a – b) + c) – d
Assignment operators are right-associative. Therefore, the expression
a = b += c = 5 is equivalent to a = (b += (c = 5))

Слайд 55

Example

Applying the operator precedence and associativity rule, the expression 3 + 4

Example Applying the operator precedence and associativity rule, the expression 3 +
* 4 > 5 * (4 + 3) - 1 is evaluated as follows:

Слайд 56

Debugging

The process of finding and correcting errors is called debugging.
A common

Debugging The process of finding and correcting errors is called debugging. A
approach to debugging is to use a combination of methods to narrow down to the part of the program where the bug is located.
You can hand-trace the program (i.e., catch errors by reading the program), or you can insert print statements in order to show the values of the variables or the execution flow of the program. This approach might work for a short, simple program.
But for a large, complex program, the most effective approach for debugging is to use a debugger utility.

Слайд 57

Debugger

Debugger is a program that facilitates debugging. You can use a debugger

Debugger Debugger is a program that facilitates debugging. You can use a
to
Execute a single statement at a time.
Trace into or stepping over a method.
Set breakpoints.
Display variables.
Display call stack.
Modify variables.
Имя файла: 03-Selections.pptx
Количество просмотров: 38
Количество скачиваний: 0