Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For cycle[C/java类语法]_Java_C++_C_Algorithm - Fatal编程技术网

For cycle[C/java类语法]

For cycle[C/java类语法],java,c++,c,algorithm,Java,C++,C,Algorithm,所以我有一个简单的问题 请考虑这两个周期 如果有什么不同,请向我解释 在两种写作方式之间 方法1: for(i=(max-1) ; i>=0 ; i--){ do-some-stuff } 方法2: for(i=max ; i>0 ; i--) { do-some-stuff } 我问这个的原因是因为今天在学校 当我们看到一些Java函数时,有 此回文方法将用作最大 传递给它的单词长度和使用的方法 第一次在谷底循环,有人知道吗 告诉我为什么写那篇文章的人 使用该方

所以我有一个简单的问题

请考虑这两个周期 如果有什么不同,请向我解释 在两种写作方式之间

方法1:

  for(i=(max-1) ; i>=0 ; i--){ do-some-stuff }
方法2:

  for(i=max ; i>0 ; i--)     { do-some-stuff }
我问这个的原因是因为今天在学校 当我们看到一些Java函数时,有 此回文方法将用作最大 传递给它的单词长度和使用的方法 第一次在谷底循环,有人知道吗 告诉我为什么写那篇文章的人
使用该方法预定位代码?

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

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

for (int i = 0; i < max; i++)
for(int i=0;i

。。。但降序时,第一种形式给出的值的范围与此相同,只是顺序相反。

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

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

for (int i = 0; i < max; i++)
for(int i=0;i

。。。但是当降序时,第一个形式给出的值范围与此相同,只是顺序相反。

两个循环都将迭代
max
次。但范围会有所不同:

  • 第一个循环的范围是
    max-1
    0
    (两者都包括在内)
  • 第二个循环的范围是
    max
    1

因此,如果您使用
i
作为数组索引,或者做一些依赖于
i
i
函数的工作,则会对终端值产生问题(例如,第一个值考虑
0
,而第二个值不考虑
0)。但是,如果您只想迭代循环
max
次,并做一些与
i
的值无关的工作,则没有区别。

两个循环都将迭代
max
次。但范围会有所不同:

  • 第一个循环的范围是
    max-1
    0
    (两者都包括在内)
  • 第二个循环的范围是
    max
    1

因此,如果您使用
i
作为数组索引,或者做一些依赖于
i
i
函数的工作,则会对终端值产生问题(例如,第一个值考虑
0
,而第二个值不考虑
0)。但是,如果您只想迭代循环
max
次,并做一些与
i
值无关的工作,那么就没有区别了。

“for cycle”听起来真奇怪@拉菲·凯特勒-不正确,两者之间肯定有区别。这两种情况下
i
的范围是不同的。这取决于
i
do some stuff
中使用的位置,或者循环只是一种重复
max
次的机制。顺便说一句,我还看到了
for(i=max;--i>=0;){…}
。我会选择最适合您的团队/项目的结构,并坚持使用它;while(i-->0){}
读作“whilei去零”。“for cycle”听起来真奇怪@拉菲·凯特勒-不正确,两者之间肯定有区别。这两种情况下
i
的范围是不同的。这取决于
i
do some stuff
中使用的位置,或者循环只是一种重复
max
次的机制。顺便说一句,我还看到了
for(i=max;--i>=0;){…}
。我会选择最适合您的团队/项目的结构,并坚持使用它;while(i-->0){}
,读作“whilei归零”。