我的嵌套for循环不会改变数组(Java)

时间:2015-04-10 08:02:23

标签: java arrays if-statement nested-loops

我不知道为什么我的嵌套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;
    }

1 个答案:

答案 0 :(得分:0)

this。克隆数组不会克隆内容。它只是创建一个相同类型和长度的新空数组。

因此,如果我正确猜出您的意图,您需要将updated = second.clone();更改为updated = second;