我正在研究一个问题,我需要在java中比较2D数组中的值。例如:
int N = 2, c = 2;
int [][] arr = new int[N][c];
System.out.println("Enter the values to a 2D array: ");
for(int i=0; i<N;i++) {
for (int j=0;j<c;j++) {
arr[i][j]=in.nextInt();
}
}
因此,在上面的代码中,用户在二维数组中输入值。
现在我想分别比较arr[i]>=0
和arr[j]>=0
,如果是,我需要对此进行一些其他操作。
但我无法这样做。例如:
for(int i=0; i<N;i++) {
for (int j=0;j<c;j++) {
if (arr[i]>=0 && arr[j]>=0) {
//Some operation//
}
}
}
请建议我采用一种方法来执行此操作 - 单独比较值。谢谢。
答案 0 :(得分:3)
arr1[i]
是一个整数数组,而不是整数,因此您无法将其与整数进行比较。 arr1[i][j]
是int
,可以与整数进行比较。
if (arr[i][j]>=0)
是一种有效的语法,但不清楚这是否是您想要的。
答案 1 :(得分:1)
您将整数存储在2D数组中。如果它有帮助,您可以通过考虑行和列来可视化地建模2D阵列 - 每个行和列对引用它在阵列中的相应存储位置。例如:
arr[0][1] = 5; // sets the value of row [0] column [1] to 5
在第二个嵌套&#39; for&#39;循环(你遇到麻烦的那个),你错误地引用了你的2D数组的值。请记住,您必须指定要引用的对 - arr [int] [int]。
if (arr[i]>=0 && arr[j]>=0); // incorrect way of referencing the desired respective location in the 2D array
您修改后的嵌套&#39; for&#39;循环语法准确&#39; if&#39;语句:
for(int i=0; i<N; i++)
for (int j=0; j<c; j++) // side note: consider using final constant(s) replacing variables N and c. In your case, you are explicitly referencing two integers that store the same value - 2
if (arr[i][j]>=0)
System.out.println("Array Position [" + i + "][" + j + "] is greater than or equal to 0");
答案 2 :(得分:0)
要比较二维数组的值,您应该检查该数组的每个值。
2x2阵列
。
。
当i = 0时,j = 0
x。
。
当i = 0时,j = 1
。 X
。
当i = 1时,j = 0
。
x。
当i = 1时,j = 1
。
。 X
for(int i=0; i<N;i++) {
for (int j=0;j<c;j++) {
if (arr[i][j]>=your_comparable_value ) {
//Some operation//
}
}
}