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]);