我對這個異常有很大的麻煩。我是新手到Java編程(和編程以及),所以..爲什麼,當第二類返回兩個數組異常出現?另外,當只有一個數組返回時(f.e「返回jakob;」),一切正常。 第一類:如何修復「ArrayIndexOutOfBoundsException」?
package mainpackage;
public class GraWojna {
int[] jakob = new int[24];
int[] gracz = new int[24];
public void Wojna() {
System.out.println("tasowanie kart...");
// kart w talii jest 48, bo 4* 12.. true?
WojnaTasowanie tas = new WojnaTasowanie();
tas.Tasowanie(jakob, gracz);
int licznik = 0;
while (licznik<23) {
System.out.println("jakob:" + jakob[licznik]);
licznik++;
}
}
}
二等:
package mainpackage;
import java.util.Random;
public class WojnaTasowanie {
int[] Tasowanie (int jakob[], int gracz[]) {
int jakb[] = new int[23];
int grcz[] = new int[23];
Random generator = new Random();
int licznik = 0;
int[] Pula = new int[11];
while (licznik<11){
Pula[licznik] = 4;
licznik++;
}
licznik = 0;
int passa = 0;
int passb = 0;
while (licznik<22) {
passa = 5;
passb = 5;
System.out.println("step ----");
while (passa<8){
int bekaxd = generator.nextInt(11);
if (Pula[bekaxd]>0) {
Pula[bekaxd]--;
passa = 15;
jakob[licznik] = bekaxd;
}
while (passb<8){
bekaxd = generator.nextInt(11);
gracz[licznik] = bekaxd;
System.out.println("licznik:" + licznik + "gracz: " + gracz[licznik] + "pula" + Pula[gracz[licznik]]);
if (Pula[gracz[licznik]]>0) {
Pula[gracz[licznik]]--;
passb = 15;
}
}
licznik++;
}
}
return Tasowanie(jakob, gracz);
}
}
堆棧跟蹤:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 25
at mainpackage.WojnaTasowanie.Tasowanie(WojnaTasowanie.java:51)
at mainpackage.WojnaTasowanie.Tasowanie(WojnaTasowanie.java:76)
at mainpackage.WojnaTasowanie.Tasowanie(WojnaTasowanie.java:76)
at mainpackage.GraWojna.Wojna(GraWojna.java:12)
at mainpackage.Main.main(Main.java:16)
預先感謝您!
你需要發佈你的堆棧跟蹤... – redFIVE
有52張牌在甲板上,順便說一句。每種顏色都有13張牌。 – abc
好的,完成了,對不起,我從來沒有機會在這裏提問。科斯泰克 - 事實上,我非常專注於「uaa,我在寫我的第一個節目!11」,我犯了這個非常愚蠢的錯誤。 –