【发布时间】:2014-10-09 01:18:01
【问题描述】:
当我想到这段代码时,我正在编写一个for 循环程序。
for(int i=1; i<=10; i++,i++)
程序运行良好,输出也正确。但后来我尝试了以下代码:
for(int i=1; i<=10; ++i,++i)
for(int i=1; i<=10; ++i,i++)
for(int i=1; i<=10; i++,++i)
令我惊讶的是,它们都产生相同的输出,1 3 5 7 9。现在我的问题是,for 循环究竟是如何工作的,为什么当我使用预增量时所有代码都产生相同的输出并在同一 for 循环中进行后增量?
【问题讨论】:
-
提示:如果你不使用前/后自增表达式的值,你认为有什么区别?
-
i++, ++i 将“最终”将 i 加一。在这种情况下, i 的整体结果很重要,因此它不会产生影响
-
看看 - docs.oracle.com/javase/specs/jls/se8/html/jls-14.html#jls-14.14 - 它应该会有所帮助:)
-
其实你应该写 i += 2 而不是 i++、i++ 或其他变体。
-
我很抱歉。我忘了提到我在循环中打印了 i 的值。
标签: java for-loop post-increment pre-increment