对于循环[C/java之类的语法]

Luc*_*che 1 c c++ java algorithm

所以我在这里谈到这个简单的问题

考虑这两个周期,请向我解释两种写作方式之间是否存在差异

方法1:

  for(i=(max-1) ; i>=0 ; i--){ do-some-stuff }
Run Code Online (Sandbox Code Playgroud)

方法2:

  for(i=max ; i>0 ; i--)     { do-some-stuff }
Run Code Online (Sandbox Code Playgroud)

我问这个的原因是因为今天在学校我们看到了一些Java函数时,有一个这样的回文方法,它将用作传递给它的单词的最大长度,并且用于循环通过for的方法是第一个,任何人都可以澄清为什么那些编写该代码的人会使用该方法进行编程吗?

Jon*_*eet 13

是的,有一个很大的区别 - 在版本中,范围是[0, max-1].在第二个版本中,它是[1, max].例如,如果您尝试使用max元素访问基于0的数组,则第二个版本将会爆炸,而第一个版本则不会.

如果循环运行的顺序无关紧要,我个人会使用更惯用的升序序列:

for (int i = 0; i < max; i++)
Run Code Online (Sandbox Code Playgroud)

...但是当下降时,第一个表单给出与此相同的值范围,只是顺序相反.