所以我在这里处理这个简单的问题
考虑这两个循环并请 向我解释是否存在任何差异 两种写作方式之间的
方法1:
for(i=(max-1) ; i>=0 ; i--){ do-some-stuff }
方法2:
for(i=max ; i>0 ; i--) { do-some-stuff }
我问这个的原因是因为今天在学校
当我们看到一些Java函数时,有
这个回文方法将用作最大值
传递给它的单词的长度和使用的方法
通过for循环,是第一个,任何人都可以
澄清为什么写那篇文章的人
使用该方法预先编码的代码?
答案 0 :(得分:13)
是的,有一个很大的区别 - 在版本中,范围是[0, max-1]
。在第二个版本中,它是[1, max]
。例如,如果您尝试使用max
元素访问基于0的数组,则第二个版本会爆炸而第一个版本不会爆炸。
如果循环运行的 order 无关紧要,我个人会使用更惯用的升序序列:
for (int i = 0; i < max; i++)
...但是当降序时,第一个表单给出与此相同的值范围,只是顺序相反。
答案 1 :(得分:3)
两个循环都将迭代max
次。但范围会有所不同:
max - 1
到0
(包括两者)max
到1
。因此,如果您使用i
作为数组索引,或者执行某些函数i
,依赖于i
,那么它将为终端创建问题值(例如0
在第一个中被考虑,而在第二个中则不被认为是max
。但是如果你只是想循环遍历i
循环,并做一些与{{1}}的值无关的工作,那么就没有区别了。