我不知道为什么我的嵌套for循环不再通过if语句一次。在初始运行之后,我试图使新数组的副本成为通过if语句并在新行上绘制的数组。每次都会减去区域,但是没有绘制任何内容,这意味着if语句没有被运行。不知道为什么不。
public static int [] completion(int [] updated, int length, double width)
{
int [] second = new int [length];
double ending = 49;
double endingY = 20;
double x = 1;
double y = 20;
double begin = 2;
double area = 20;
for(int k = 0; k < 20; k++){
for(int i = 1; i < 49 - 1; i++) {
int [] done = updated;
if(0 == done[i - 1] && 0 == done[i] && 0 == done[i + 1]){
StdDraw.square(begin,area,width);
begin = begin + 1;
second[i] = 0;
}
else if (1 == done[i - 1] && 1 == done[i] && +
1 == done[i + 1]){
StdDraw.square(begin,area,width);
begin = begin + 1;
second[i] = 0;
}
else {
StdDraw.filledSquare(begin, area, width);
begin = begin + 1;
second[i] = 1;
}
}
updated = second.clone();
area = area - 1;
StdDraw.square(x,y,width);
StdDraw.square(ending,endingY,width);
y = y-1;
updated[0] = 0;
updated[48] =0;
endingY = endingY - 1;
}
return updated;
}
答案 0 :(得分:0)
见this。克隆数组不会克隆内容。它只是创建一个相同类型和长度的新空数组。
因此,如果我正确猜出您的意图,您需要将updated = second.clone();
更改为updated = second;
。