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运算,第二个不会
上面说反了