试图让我的 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 1
是 array2[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]
所以此时我不知道为什么我的 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 1
是 array2[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]