自增运算。。。。。。。。。。

while(D[i] - D[j] > sum){
j++;
}

while(D[i] - D[j++] > sum);

程序其他地方完全相同,只有这里不同,但是结果完全不同

概念:

++x :x先运行++(+1)后,再去做其他运算。

x++:x先去做其他运算,最后再自己++(+1)。

【示例】

class A{
int x=7;
int y=++x + (x++ + x)
System.out.println(y);
}结果:25

运行详细步骤:

1.执行 x++ —> 此时x变为8(因为运算中的......
答案就在这里:自增运算
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

要看你的循环里有没有用到j
因为 j被修改的时机不同

第二个不管D[i]-D[j]是否大于S,j都要+1;
而第一个如果D[i]-D[j]不大于S了,就不进循环体了,j就不会+1;

int i = 0,j = 5;
while(j>i){
i++;
}
System.out.println(i+"-----"+j);
i=0;
j=5;
while(j>i++);
System.out.println(i+"-----"+j);

    通过实验可知,两者是一样的,可能是偶然的问题导致你的问题

第一个j最后一次会进行加1运算,第二个不会

上面说反了图片说明图片说明图片说明