THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 50

6.5 Bi u th c logic

H u h t các toán t mà ta đã g p đ u t o ra k t qu có cùng ki u v i các toán h ng trong đó. L y ví d ,

ế

ề ạ

ế

toán t

ử + nh n hai s

ố int r i cũng t o ra m t s

ộ ố int, ho c hai s

ố double r i t o thành m t

ồ ạ

ộ double, v.v.

Nh ng ngo i l mà ta g p, đó là các

ạ ệ

toán t quan h

, v n đ so sánh các

int ho c

ặ float r i tr

ồ ả

l i

ạ true ho c

ặ false. true và false là nh ng giá tr đ c bi t trong Java; hai giá tr này h p nên m t ki u g i

ị ặ

boolean. B n có th nh l i r ng khi tôi đ nh nghĩa m t ki u, tôi có nói r ng đó là m t t p các giá tr .

ớ ạ ằ

ộ ậ

Đ i v i các s

ố ớ

ố int, double hay chu i

ỗ String, nh ng t p h p nh v y đ u r t l n. Song v i

ư ậ

ề ấ ớ

ớ boolean, t p

h p này ch ch a hai giá tr .

ỉ ứ

Các bi u th c boolean, hay bi u th c logic, cùng các bi n cũng ho t đ ng gi ng nh các bi u th c và

ế

ạ ộ

ư

bi n thu c ki u khác:

ế

boolean

flag;

flag =

true

;

boolean

testResult =

false

;

Ví d th nh t là m t l i khai báo bi n đ n gi n; ví d th hai là m t l nh gán, còn ví d th ba là m t

ụ ứ

ộ ờ

ế

ơ

ụ ứ

ộ ệ

ụ ứ

l nh kh i t o.

ở ạ

Các giá tr

ị true và false là nh ng t khóa trong Java, vì v y chúng có th xu t hi n v i màu ch khác tùy

theo môi tr

ng phát tri n tích h p mà b n đang dùng.

ườ

K t qu c a m t toán t đi u ki n là m t giá tr boolean, b i v y b n có th l u tr k t qu c a phép so

ế

ả ủ

ử ề

ở ậ

ể ư

ữ ế

ả ủ

sánh vào m t bi n:

ế

boolean

evenFlag = (n%2 == 0);

// đúng nếu n chẵn

boolean

positiveFlag = (x > 0);

// đúng nếu x dương

r i l i dùng nó làm b ph n c a m t câu l nh đi u ki n:

ồ ạ

ậ ủ

if

(evenFlag) {

System.out.println(

"Khi tôi kiểm tra, n là số chẵn"

);

}

M t bi n đ

c dùng theo cách này có th g i là m t bi n

ế

ượ

ể ọ

ế d u hi u

vì nó đánh d u cho s có m t ho c

v ng m t c a m t đi u ki n nào đó.

ặ ủ

6.6 Toán t logic

Có ba toán t logic

trong Java: AND, OR và NOT, v n đ

c kí hi u b i ba d u

ượ

ấ &&, || và !. Ý nghĩa c a

các toán t này gi ng nh nghĩa các t t

ng ng trong ti ng Anh. Ch ng h n,

ư

ừ ươ

ế

ạ x > 0 && x < 10 ch đúng

khi

x

l n h n 0

ơ

nh h n 10.

ỏ ơ

evenFlag || n%3 == 0 ch đúng khi

m t trong hai

đi u ki n là đúng; nghĩa

là evenFlag đúng ho c

số

n

chia h t cho

ế

3.

Sau cùng, toán t

not

ph đ nh m t bi u th c Boole. Do v y

ủ ị

ậ !evenFlag là đúng n u nh

ế

ư evenFlag là sai

—t c là n u s đã cho là l .

ế ố

Toán t logic có th làm đ n gi n nh ng câu l nh đi u ki n l ng ghép. Ch ng h n, b n có th vi t l i

ơ

ệ ồ

ể ế ạ

mã l nh d

i đây b ng m t câu l nh đi u ki n đ n l đ

c không?

ướ

ơ ẻ ượ