循环计数器i作为I ++与i + 1作为数组中的位置

4 java

我用i做了一个循环,因为它是计数器变量.
在那个循环里面,我正在比较一个数组的单元格.
我想知道array [i ++](或array [++ i])与array [i + 1]之间有什么区别.
因为i ++(或++ i)不能按照想要的方式工作,而i + 1(一个让我疯狂的小包).

提前致谢.

Jon*_*eet 15

  • array[i++]将评估array[i]和增加i.
  • array[++i]将递增i评价array[i](所以它给你的下一个元素)
  • array[i+1] 将给你下一个元素而不增加 i

我个人试着避免使用这样的副作用 - 这意味着当我稍后阅读代码时,我总是要放慢脚步以确保我按正确的顺序获得所有内容.

如果你在一个循环的增加是已经i,然后递增i的数组访问表达式以及意味着每个循环迭代将增加i两倍.


Bom*_*mbe 7

i++,++ii+1,都是不同的表达(或操作).您应该查阅您最喜欢的Java参考,以了解其中的差异.

(简而言之:i++增量i但返回原始值,++i增量i并返回新值,i+1不增加i但返回值i+1.)

至于为什么你的循环不能按照你期望的方式工作:如果没有实际看到你的代码就无法回答 - 这是非常合乎逻辑的.我的假设是您使用了错误的表达式和/或i每个循环增加了两次.

  • 这仍然取决于您的代码.显示它,我们可以告诉你它有什么问题. (2认同)