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

thông th

ng:

ườ

if

(cards[0] ==

null

) {

System.out.println(

"Chưa có quân bài nào!"

);

}

Nh ng n u b n c th truy c p các bi n th c th c a nh ng

ư

ế

ạ ố ử

ế

ể ủ

ữ Card ch a t n t i, b n s nh n đ c bi t

ư ồ ạ

ạ ẽ

ượ

l

ệ NullPointerException.

cards[0].rank;

// NullPointerException

Nh ng đó l i là cú pháp đúng đ truy c p

ư

ậ rank (b c) c a lá bài “th không” trong c . Đây là m t ví d

khác c a phép h p, b ng cách k t h p cú pháp truy c p ph n t c a m ng và truy c p m t bi n th c th

ế ợ

ầ ử ủ

ế

c a đ i t

ng.

ố ượ

Cách d nh t đ đi n nh ng đ i t

ng

ấ ể ề

ố ượ Card đ y vào c bài là vi t nh ng vòng l p for l ng ghép (nghĩa

ế

là vòng l p này đ t trong vòng l p khác):

int

index = 0;

for

(

int

suit = 0; suit <= 3; suit++) {

for

(

int

rank = 1; rank <= 13; rank++) {

cards[index] =

new

Card(suit, rank);

index++;

}

}

Vòng l p ngoài cùng đ m các ch t t 0 t i 3. V i t ng ch t, vòng l p trong đ m các b c t 1 đ n 13. Vì

ế

ấ ừ

ớ ừ

ế

ậ ừ

ế

vòng l p ngoài ch y 4 l n, và vòng l p trong ch y 13 l n, nên ph n thân đ

c th c hi n 52 l n.

ượ

Tôi đã dùng index đ theo dõi lá bài ti p theo s c n ph i đ t vào đâu trong c bài. S đ tr ng thái sau

ế

ẽ ầ

ả ặ

ơ ồ ạ

đây cho th y c bài nh th nào sau khi hai lá bài đ u tiên đ

c huy đ ng:

ấ ỗ

ư ế

ượ

13.7 Ph

ng th c

ươ

ứ printDeck

Khi làm vi c v i m ng, cách ti n l i là có m t ph

ng th c đ in ra n i dung. Ta đã vài l n th y đ

ng

ệ ớ

ệ ợ

ươ

ứ ể

ượ

d ng m u cho vi c duy t m ng, b i v y ph

ng th c sau s quen thu c đ i v i b n:

ở ậ

ươ

ộ ố ớ ạ

public static void

printDeck(Card[] cards) {

for

(

int

i = 0; i < cards.length; i++) {

printCard(cards[i]);