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
ữ
ị ặ
ệ
ị
ợ
ộ
ể
ọ
là 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
ớ
ơ
và 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?
ệ
ướ
ằ
ộ
ệ
ề
ệ
ơ ẻ ượ