我有一个问题。
public class Deck {
//deck contents returns every card in the deck
String[] suits = {"Clubs", "Hearts", "Diamonds", "Spades"};
String[] ranks = {"Deuce", "Three", "Four", "Five", "Six", "Seven",
"Eight", "Nine", "Ten", "Jack", "Queen", "King", "Ace"};
int[] values = {2,3,4,5,6,7,8,9,10,10,10,10,11};
ArrayList<Card> deck = new ArrayList<Card>();
ArrayList<Card> cardsDealt = new ArrayList<Card>(); //unused here
Random rand = new Random(); //unused here
public Deck(){
for(int i = 0; i < suits.length; i++){
for(int k = 0; i < ranks.length; k++){
deck.add(new Card(suits[i], ranks[k], values[k]));
}
}
}
我收到 IndexOutOfBoundsException 错误。我的任务是创建一个 Deck 对象,然后将 52 个卡片对象添加到一个名为 Deck 的 ArrayList 中。我编写了 for 循环来创建一副卡片组中可能的 52 张卡片。错误是什么?
最佳答案
您的问题在这里:
for(int i = 0; i < suits.length; i++){
for(int k = 0; i < ranks.length; k++){
^
deck.add(new Card(suits[i], ranks[k], values[k]));
}
}
这不是i < ranks.length
但是k < ranks.length
!
for(int i = 0; i < suits.length; i++){
for(int k = 0; k < ranks.length; k++){
deck.add(new Card(suits[i], ranks[k], values[k]));
}
}
关于java - ArrayIndexOutOfBounds 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27547908/