试图让我的 for 循环工作

Trying to get my for loop working

所以此时我不知道为什么我的 for 循环不起作用。这可能只是一个小错误,但我找不到它,因此非常感谢您的帮助。这是它的样子:

int[] values = new int[array1.length];
for (int i = 0; i < array1.length; i++) {
    for (int x = 0; x >= array1[i][0] && x <= array1[i][2]; x++) {
        for (int y = 0; y >= array1[i][1] && y <= array1[i][3]; y++) {
            values[i] += array2[x][y];
        }
    }
}         

我用来测试它的数字和一些上下文:

两个数组都是二维的, array1 看起来像这样:

(array1.length = 8) 和 array2 像这样:

array1 保存 array2 区域左上角和右下角的坐标,例如 0 0 2 1array2[0][0] 和 [=20 的坐标=] 并且我正在尝试让我的 for 循环添加该区域中的所有数字。所以对于这个例子,它将添加这四个数字:

我的输出是:3 0 0 0 0 0 0 0

我认为您应该这样做(添加 <= 和 >=)并更改 statring 值。还要考虑用零填充 "values",因为您要对其求和。

                for (int x = array1[i][0]; x >= array1[i][0] && x =< array1[i][2]; x++) {
                    for (int y = array1[i][1]; y >= array1[i][1] && y =< array1[i][3]; y++) {
                        values[i] += array2[x][y];
                    }
                }

你应该使用明确的变量名,不要搞错意思。 此外,在预期坐标处开始循环。所以你的循环可以这样写:

int[] values = new int[array1.length];
for (int i = 0; i < values.length; i++) {
    int fromX = array1[i][0];
    int fromY = array1[i][1];
    int toX = array1[i][2];
    int toY = array1[i][3];

    for (int x = fromX; x <= toX; x++) {
        for (int y = fromY; y <= toY; y++) {
            values[i] += array2[x][y];
        }
    }
}

您可以查看结果:

System.out.println( Arrays.toString( values) );
// Output is [3, 0, 4, -2, 0, 1, -2, 3]