i ++和i之间的区别 -

时间:2014-11-30 08:49:44

标签: java for-loop

我在接受采访时被问到这个问题。如果你知道这件事,请提供解决方案。

之间有什么区别
for(int i=0;i<=N;i++)

for(int i=N;i>=0;i--)

运行得更快,为什么?

PS:请根据性能和编译器的方式区分。我不是在询问postfix和前缀表示法之间的基本区别。

2 个答案:

答案 0 :(得分:2)

如果我们有更多信息,我认为这有可能成为一个更好的问题。您应该指定您所指的语言。如果这是JavaScript或其他什么,那么你需要提一下。

其次,考虑修改你的问题。我建议询问哪种情况比另一种情况更合适。

无论语言如何,两者之间的差异都是鲜明的对比。第一个for循环涉及递增一个变量,直到达到最大值(比喻说,有点像一个竞争到顶部),而第二个涉及递减一个变量,直到达到某个最小值(就像一个竞争到底部) )。

顺便提一下,在某些语言中,如果在左侧而不是右侧写入增量或减量运算符,则在循环增量表达式中PHP性能会更快。

答案 1 :(得分:0)

这是一个很好的面试问题,因为你给出的任何答案都可能是错误的,更重要的是你以前从未认真考虑的事情。

重点是让你离开你的游戏。他们希望看到当你被推入一个你认为自己应该是​​专家但又找不到你自己的领域的时候你会如何反应。知道这个问题的完美答案对你没有帮助,因为他们还会再提出12个问题让你失望。

他们想要的是看你如何应对这种情况。你做的东西?你仔细想想吗?你能证明为什么它不是一个重要的问题吗?你是否坚持以自己的方式看待它是唯一有效的方法?当被告知另一种方式时你会听吗?如果被告知以另一种方式去做,你会感到痛苦吗?

他们会更关心这个问题的答案,而不是你是否能为他们节省CPU时钟。

但如果事实证明你是这个尘土飞扬的奥术角落的专家,你可能会得到一分 如果那是您真正的问题,那么它就是这个问题的重复:Which of these pieces of code is faster in Java?