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

hoàn toàn. Còn các lo i trái cây là không có th t , vì v y mà ta không th so sánh táo v i cam đ

c.

ứ ự

ượ

Trong Java, ki u

ể boolean là không th t ; ta không th nói r ng

ứ ự

ằ true l n h n

ơ false.

T p h p các lá bài thì l i ph n nào đ

c x p th t , có nghĩa r ng đôi khi ta có th so sánh lá bài và đôi

ượ ế

ứ ự

khi không. Ch ng h n, tôi bi t r ng cây 3 Nhép thì cao h n 2 Nhép và 3 Rô thì cao h n 3 Nhép. Nh ng

ế ằ

ơ

ơ

ư

lá bài nào h n, 3 Nhép hay 2 Rô? M t lá thì có b c cao h n, nh ng lá kia thì có ch t cao h n.

ơ

ơ

ư

ơ

Đ làm cho các lá bài so sánh đ

c v i nhau, ta ph i quy t đ nh xem th nào quan tr ng h n, b c hay

ượ ớ

ế ị

ơ

ch t. Cách l a ch n là tùy ý, nh ng khi b n mua m t c bài m i, thì các qu n Nhép đ

c x p c nh

ư

ộ ỗ

ượ ế ạ

nhau, sau đó là các quân Rô, r i c nh v y. B i th ta hãy coi r ng ch t thì quan tr ng h n.

ồ ứ

ư ậ

ế

ơ

Khi đã quy t đ nh nh v y, ta có th vi t

ế ị

ư ậ

ể ế compareCard. Ph ng th c này nh n tham s là hai

ươ

Card r i

tr l i 1 n u lá bài th nh t h n, -1 n u lá bài th hai h n, và 0 n u chúng t

ng đ ng.

ả ạ

ế

ấ ơ

ế

ơ

ế

ươ

Tr

c tiên, ta so sánh ch t:

ướ

if

(c1.suit > c2.suit)

return

1;

if

(c1.suit < c2.suit)

return

-1;

N u hai câu l nh trên ch ng có câu l nh nào đúng, thì các ch t ph i b ng nhau, và ta ph i so sánh b c:

ế

ả ằ

if

(c1.rank > c2.rank)

return

1;

if

(c1.rank < c2.rank)

return

-1;

N u l i ch ng có câu nào đúng, thì hai b c ph i b ng nhau, và vì v y ta ph i tr l i

ế ạ

ả ằ

ả ả ạ 0.

13.6 M ng các lá bài

Đ n gi ta đã th y m t vài ví d v phép h p (kh năng k t h p nh ng đ c đi m c a ngôn ng l p trình

ế

ụ ề

ế ợ

ữ ậ

theo nhi u cách b trí khác nhau). M t trong nh ng ví d đ u tiên ta b t g p là vi c dùng phép kích

ụ ầ

ắ ặ

ho t ph

ng th c nh là m t ph n c a bi u th c. M t ví d khác là c u trúc l ng ghép g m các câu

ươ

ư

ầ ủ

l nh: b n có th đ t m t l nh

ể ặ

ộ ệ if bên trong m t vòng l p

ặ while, hay bên trong m t l nh

ộ ệ if khác, v.v.

Khi đã bi t đ

c d ng nh v y, và đã h c đ

c v m ng và đ i t

ng, thì có l b n ch ng ng c nhiên

ế ượ ạ

ư ậ

ọ ượ ề ả

ố ượ

ẽ ạ

khi đ

c bi t r ng ta có th t o nên m ng ch a nh ng đ i t

ng. Và b n có th đ nh nghĩa nh ng đ i

ượ

ế ằ

ể ạ

ố ượ

ể ị

t

ng có bi n th c th là các m ng; b n có th l p nên nh ng m ng ch a m ng khác; b n có th đ nh

ượ

ế

ể ậ

ể ị

nghĩa đ i t

ng ch a đ i t

ng khác, v.v. Trong hai ch

ng ti p theo, ta s th y nh ng ví d v cách

ố ượ

ố ượ

ươ

ế

ẽ ấ

ụ ề

k t h p nh v y trên c s các đ i t

ng

ế ợ

ư ậ

ơ ở

ố ượ Card.

Ví d này t o nên m t m ng g m 52 quân bài:

Card[] cards =

new

Card[52];

Sau đây là s đ tr ng thái cho đ i t

ng này:

ơ ồ ạ

ố ượ

M ng hi n t i có ch a các

ệ ạ

tham chi u

ế đ n đ i t ng; nó không ch a b n thân các đ i t ng

ế

ố ượ

ố ượ Card.

Nh ng ph n t này đ u đ

c kh i t o v

ầ ử

ượ

ở ạ ềnull. B n có th truy c p t ng ph n t trong m ng theo cách

ậ ừ

ầ ử

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.