0
在下面的代碼中,我得到ArrayIndexOutOfBoundsException。我對Java不熟悉的線索並沒有讓它超出界限。我調試這個代碼,輸入4個條目後終止。獲取ArrayIndexOutOfBoundsException,數組大小是動態確定的
String[] suit = {"Clubs", "Diamonds", "Hearts", "Spades"};
String[] rank = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"};
String[] deck = new String[suit.length * rank.length];
int i = (int)(Math.random()*rank.length);
int j = (int)(Math.random()*suit.length);
System.out.println(rank[i]+" of "+suit[j]);
for(int k=0; k<suit.length; k++){
for(int l=0; l<rank.length; l++){
//on the following line.
deck[rank.length*k + l] = rank[k]+ " of "+suit[l];
}
}
for(String s : deck){
System.out.println(s);
}
它工作正常。你能解釋一下嗎?只是爲了擺脫例外。 Abdelhak的答案也使它正確。他的解釋是有道理的,但不是輸出。您的解決方案提供正確的輸出。 – LetMeCodeYou
你正在使用'k'作爲訴訟指數(你有4)和'l'作爲行列指數(有13個)。由於您在'rank'中沒有大於3的索引,最終會出現'ArrayIndexOutOfBoundsException' –