我遵循官方的java教程,我想知道爲什麼for循環在兩個類中重複。爲什麼使用兩次相同的循環?爲什麼數組的值減少?
public class Deck {
public static int numSuits = 4;
public static int numRanks = 13;
public static int numCards = numSuits * numRanks;
private Card[][] cards;
public Deck() {
cards = new Card[numSuits][numRanks];
for (int suit = Card.DIAMONDS; suit <= Card.SPADES; suit++) {
for (int rank = Card.ACE; rank <= Card.KING; rank++) {
//Don't understand why rank is decreased by one
cards[suit-1][rank-1] = new Card(rank, suit);
}
}
}
public Card getCard(int suit, int rank) {
return cards[suit-1][rank-1];
}
}
public class DisplayDeck {
public static void main(String[] args) {
Deck deck = new Deck();
for (int suit = Card.DIAMONDS; suit <= Card.SPADES; suit++) {
for (int rank = Card.ACE; rank <= Card.KING; rank++) {
Card card = deck.getCard(suit, rank);
System.out.format("%s of %s%n",
card.rankToString(card.getRank()),
card.suitToString(card.getSuit()));
}
}
}
}
也爲卡類的代碼,可以發現here也誰能告訴我,爲什麼在甲板構造數組值被減?因爲初值是不會這樣正義事業,錯誤?。謝謝。
Java數組從0開始。而且,這兩個環是不一樣的。在一個公平的邊緣... – ppeterka 2013-02-26 19:22:44
嘗試刪除,你會得到一個漂亮的ArrayIndexOutOfBound異常。通過編碼學習不會通過學習進行編碼。好運。 – 2013-02-26 19:26:03
他們有什麼不同?他們都增加排名和訴訟。對不起,如果這是一個愚蠢的問題,即時通訊仍然是非常新的Java。 – 2013-02-26 19:26:44