我用Java编写了一个代码,用于匹配类中的情侣(用于分配或坐着或任何东西),所以我使用了2D数组。 BlueJ告诉我在我的代码的最后一个循环中有一个ArrayOutOfBoundsException,我没有设法解决它。 谁能告诉我如何解决它?
byte pref;
System.out.println("How many children are in your class");
byte children = reader.nextByte();
byte[][] students = new byte[children][children]; //Each cell contains the rank of the match
System.out.println("Enter each child's preference, according to their number:");
for (byte b=0;b<students.length;b++)//Ranks each match
{
System.out.print((b+1)+") ");
pref = reader.nextByte();
pref--;
students[b][pref]++;
}
System.out.println("The matches got 2 points are:");
for (byte b=0;b<students.length;b++)
{
for (byte c=0;c<students.length;b++)
{
if (students[b][c]==2)
System.out.print(b+"+"+c);
}
}
由于
答案 0 :(得分:0)
嵌套循环中的错字错误 变化
for (byte c=0;c<students.length;b++)
要
for (byte c=0;c<students.length;c++)
答案 1 :(得分:0)
for (byte b=0;b<students.length;b++){
for (byte c=0;c<students.length;/*b++*/c++)
{
if (students[b][c]==2)
System.out.print(b+"+"+c);
}
}
抛出OutOfBoundsException,因为你在第二个循环中增加b,所以当第一个循环在它的最后一次运行时,你再次增加b然后超出界限。
答案 2 :(得分:0)
除了拼写错误,你应该写学生[b] .length :
setdiff(c(1, 3, 5, 7, 11) + 2i, 1:10 + 2i)
#[1] 11+2i
cx_setdiff(c(1, 3, 5, 7, 11) + 2i, 1:10 + 2i)
#[1] 11+2i
setdiff(c(1, 3, 5, 7) + 2i, 1:10 + 2i)
#complex(0)
cx_setdiff(c(1, 3, 5, 7) + 2i, 1:10 + 2i)
#complex(0)
,因为你想要嵌套数组的长度。