У меня есть большая проблема с этим исключением. Я новичок в программировании на Java (и программировании), поэтому .. Почему, когда второй класс возвращает два исключения из массива? Кроме того, когда возвращается только один массив (f.e «return 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», что я сделал эту самую глупую ошибку. –