1. Trang chủ
  2. » Công Nghệ Thông Tin

Lecture Java methods: Object-oriented programming and data structures (2nd AP edition): Chapter 7 - Maria Litvin, Gary Litvin

30 24 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 377,72 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chapter 7 - Boolean expressions and if-else statements. This chapter also includes relational and logical operators, De Morgan’s Laws, the switch statement and enum data types. Another objective is to discuss team development and illustrate software reusability in the context of a simple but realistic case study, the Craps project.

Trang 1

Boolean Expressions and if-else

and Data Structures

Maria Litvin ● Gary Litvin

2nd AP edition with GridWorld

Trang 2

Objectives:

• Learn about the boolean data type

• Learn the syntax for if-else statements

• Learn about relational and logical operators,

De Morgan’s laws, short-circuit evaluation

• Learn when to use nested if-else statements,

if-else-if sequences, the switch statement

• Learn about enum data types

Trang 4

• George Boole (1815 - 1864)

• boolean variables may have

only two values, true or false

• You define boolean fields or

boolean local variables the

same way as other variables boolean true

false

Reserved words

private boolean hasMiddleName;

boolean isRolling = false;

Trang 5

• Boolean expressions are written using

boolean variables and relational and logical operators

Trang 7

Relational Operators (cont’d)

• Apply to numbers or chars:

if ( count1 <= count2 )

if ( sum != 0 )

if ( letter == 'Y' )

• Do not use == or != with

doubles because they may

have rounding errors

double x = 7.0; double y = 3.5;

if (x / y == 2.0) .

May be false!

Trang 8

Relational Operators (cont’d)

• Be careful using == and != with objects (for example, Strings): they compare references (addresses) rather than values (the contents) String cmd = console.readLine();

if ( cmd == "Help" )

Wrong!

(always false)

Trang 9

Relational Operators (cont’d)

• Use the equals or equalsIgnoreCase

methods to compare Strings:

or

if ( "Help".equals (cmd) ) .

String cmd = console.readLine();

if ( cmd.equals ("Help") ) .

Trang 10

Relational Operators (cont’d)

• Use the == or != operator with strings and

other objects when you want to know whether

or not this is exactly the same object

• Also use == or != to compare to null

String text = file.readLine( );

if ( text != null ) .

Trang 12

Logical Operators (cont’d)

( condition1 && condition2 ) is true if both

condition1 and condition2 are true

( condition1 || condition2 ) is true if

condition1 or condition2 (or both) are true

!condition1 is true if and only if condition1

is false

Trang 13

Logical Operators (cont’d)

• &&, ||, and ! obey the laws of formal logic

called De Morgan’s Laws:

Trang 14

Ranks of Operators

! -(unary) ++ (cast)

* / % + -

< <= > >= == !=

&&

||

if ( ( ( year % 4 ) == 0 ) && ( month == 2 ) )

if ( year % 4 == 0 && month == 2 )

Easier to read

Highest

Lowest

Trang 15

Short-Circuit Evaluation

if (condition1 && condition2)

If condition1 is false, then condition2 is not

evaluated (the result is false anyway)

if (condition1 || condition2)

If condition1 is true, then condition2 is not

evaluated (the result is true anyway)

if ( x >= 0 && Math.sqrt (x) < 15.0)

Always OK: won’t get

to sqrt if x < 0

Trang 16

Nested if-else

if ("forward".equals(cmd)) {

if (slide >= numSlides) beep.play();

else slide++;

} else {

if (slide <= 1) beep.play();

else slide ;

}

Trang 17

if-else-if

if (drinkSize.equals(”Large")) {

total += 1.39;

} else if (drinkSize.equals("Medium")) {

total += 1.19;

} else // if "Small" drink size {

total += 0.99;

}

Trang 18

Common if-else Errors

if ( )

if ( ) statement1; else

statement2;

It is safer to always use

braces in

if-else

if ( ) statement1;

Trang 20

• The same case can have two or more labels For example:

switch (num) {

Trang 21

enum Data Types

• Used when an object’s attribute or state can have only one of a small set of values,

for example:

• enum variables do not represent numbers, characters, or strings

private enum Speed { LOW, MEDIUM, HIGH };

private enum InkColor { BLACK, RED };

private enum DayOfWeek { sunday, monday,

tuesday, wednesday, thursday, friday, saturday };

Trang 22

enum Data Types (cont’d)

• Use == or != to compare enum values

• Can be used in a switch:

private enum Speed { LOW, MEDIUM, HIGH };

Trang 23

The Craps Project

Trang 25

The Craps Project (cont’d)

Step 1:

Test your CrapsGame class separately

using the class CrapsTest1 provided to you.

CrapsTest1

CrapsGame

Trang 27

The Craps Project (cont’d)

Step 3:

Finish the RollingDie class (the drawDots

method) Integrate CrapsGame and RollingDie

into the Craps program.

Trang 28

Review:

• What are the possible values of a boolean

variable?

• What operators are used to compare values

of numbers and chars?

• How can you test whether two Strings have the same values?

• Which binary operators have higher rank (are executed first), relational or logical?

Trang 29

Review (cont’d):

• Can you have an if statement without an

else?

• Explain short-circuit evaluation

• How long can an if-else-if sequence be?

Ngày đăng: 04/11/2020, 23:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN