Java 为什么我没有得到正确的输出?

Java 为什么我没有得到正确的输出?,java,arrays,loops,inversion,Java,Arrays,Loops,Inversion,我在计算数组中的倒数。我得到的结果是3,而它应该是4。这是我的密码 int[] array1 = new int[5]; array1[0] = 3; array1[1] = 7; array1[2] = 10; array1[3] = 6; array1[4] = 4; int count = 0; for(int i =0;i<array1.length;i++){ for(int j =i+1;j<array1.length;j++){

我在计算数组中的倒数。我得到的结果是3,而它应该是4。这是我的密码

 int[] array1 = new int[5];
 array1[0] = 3;
 array1[1] = 7;
 array1[2] = 10;
 array1[3] = 6;
 array1[4] = 4;

 int count = 0;
for(int i =0;i<array1.length;i++){

    for(int j =i+1;j<array1.length;j++){

        if(array1[i]> array1[j] ){

        count++;
    }
}
}
System.out.println(count);
int[]array1=新的int[5];
阵列1[0]=3;
阵列1[1]=7;
阵列1[2]=10;
阵列1[3]=6;
阵列1[4]=4;
整数计数=0;

对于(int i=0;ifor
i++
j++
索引增量不应在
for
循环体中重复,因为它们已经存在于
for
循环条件的同一行中。

删除j++和i++。同时将j的初始位置更改为i+1,而不是0

int[] array1 = new int[5];
array1[0] = 3;
array1[1] = 7;
array1[2] = 10;
array1[3] = 6;
array1[4] = 4;

int count = 0;
for(int i =0;i<array1.length;i++){

    for(int j=i+1;j<array1.length;j++){

       if(array1[i]> array1[j] ){
          count++;
       }

    }
 }
 System.out.println(count);
int[]array1=新的int[5];
阵列1[0]=3;
阵列1[1]=7;
阵列1[2]=10;
阵列1[3]=6;
阵列1[4]=4;
整数计数=0;

对于(int i=0;此处为iArrayIndexOutOfBoundException。您正在将“i”增加到array1.length。它应该是“为什么在for循环中使用i++j++”。请检查循环增量逻辑。感谢提示,我更改了它,但是我仍然得到3。正如前面的评论中提到的,您需要删除每个for循环末尾的变量增量,并且改变“为什么这应该是4?在这种情况下,什么是反转?我已经按照你之前的建议做了,我得到了6,但是从j从1变为I+1,它起了作用:d非常感谢