int i vs int index等哪一个更好?

Ear*_*rlz 11 variables iterator coding-style naming-conventions

可能重复:
名为i的变量是否不可接受?
循环变量的理想变量命名约定是什么?

来自C背景我总是用于int i泛型循环变量.当然,在大型嵌套循环或其他复杂的东西中,我可能会使用一个描述性的名称但你更喜欢看哪一个?

int i;
for(i=0;i<Controls.Count;i++){
  DoStuff(Controls[i]);
}
Run Code Online (Sandbox Code Playgroud)

要么

int index;
for(index=0;index<Controls.Count;index++){
  DoStuff(Controls[index]);
}
Run Code Online (Sandbox Code Playgroud)

在我正在进行的当前项目中,这两种样式和索引都被替换为ndx.

哪一个更好?是i可变太一般?还有其他C风格的名字呢?i, j, k是否所有这些都应该被实际的描述性变量所取代?

Noo*_*ilk 14

i然而,就第一个循环来说,它是非常标准的,其次j是内循环和k内循环,依此类推.

与几乎所有命名规则一样,只要它是项目中的标准规则,并且适用于所有成员,那就没关系.


unu*_*tbu 8

在可能的情况下,我赞成描述性名称,因为我们应该努力寻找可读代码.

对于在严格代码块中使用的临时变量,可以接受短变量名称.

但是如果循环或代码块很长,最好有一个更长的描述性变量名称,如果没有其他原因,它将使文本搜索更容易.


jba*_*all 5

如果要执行嵌套循环来访问多维数组元素,则必须使用描述性迭代器名称来创建自我注释代码.例如.,

for(int i=0;i<someMax;i++){ 
  for(int j=0;j<someOtherMax;j++){ 
    DoStuff(someArray[i,j]); 
  }
} 
Run Code Online (Sandbox Code Playgroud)

for(int row=0;row<someMax;row++){ 
  for(int column=0;column<someOtherMax;column++){ 
    DoStuff(someArray[row,column]); 
  }
} 
Run Code Online (Sandbox Code Playgroud)