我不知道为什么我在嵌套的for循环中得到ArrayIndexOutOfBoundsException
...它只打印第一个内部for循环而从不进入外部for循环。
谁能告诉我为什么会这样?
public static double weight(){
//int counter = 0;
System.out.println("####" + d);
while(Math.abs(delta_w) > 0.001){
for(int i = 0; i < 33; i++ ){
for(int j = 0; j < 13; j++ ){
if(Math.abs(delta_w)!=0){
value = d.exData[i][j]; //?
y = d.exLabels[i];
percep = w * d.exData[i][j];
System.out.println(d.exData[i][j]);
delta_w = y - percep;
w+= delta_w;
// counter++;
System.out.println("value w " + w);
}
}
}
}
return w;
}
答案 0 :(得分:0)
最可能的原因是'd.exData.length == 1'
为什么假设数组大小为33和13?为什么不使用数组的计数呢?
public static double weight(){
//int counter = 0;
System.out.println("####" + d);
while(Math.abs(delta_w) > 0.001){
for(int i = 0; i < d.exData.length; i++ ){
for(int j = 0; j < d.exData[i].length; j++ ){
if(Math.abs(delta_w)!=0){
value = d.exData[i][j]; //?
y = d.exLabels[i];
percep = w * d.exData[i][j];
System.out.println(d.exData[i][j]);
delta_w = y - percep;
w+= delta_w;
//counter++;
System.out.println("value w " + w);
}
}
}
}
return w;
}