我对这个例外有很大的麻烦。我是 Java 编程(以及编程)的新手,所以.. 为什么,当第二类返回两个数组时出现异常?此外,当只有一个数组返回时(fe "return jakob;"),一切正常。一级:
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)
先感谢您!