我正在处理一个问题,我需要在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();
}
}
因此,在上面的代码中,用户在 2d 数组中输入值。现在我想比较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//
}
}
}
请向我建议一种执行此操作的方法 - 单独比较值。谢谢。
arr1[i]
是一个整数数组,而不是整数,因此您无法将其与整数进行比较。 arr1[i][j]
是一个int
,可以与整数进行比较。
if (arr[i][j]>=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//
}
}
}
您正在将整数存储在二维数组中。如果有帮助,您可以通过考虑行和列来直观地对 2D 数组进行建模 - 每行和列对都引用它在数组中各自的存储位置。例:
arr[0][1] = 5; // sets the value of row [0] column [1] to 5
在第二个嵌套的"for"循环(您遇到问题的循环)中,您错误地引用了 2D 数组的值。请记住,您必须指定要引用的对 - arr[int][int]。
if (arr[i]>=0 && arr[j]>=0); // incorrect way of referencing the desired respective location in the 2D array
您修改后的嵌套"for"循环,其中包含语法准确的"if"语句:
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");