2012-09-11 133 views
-2

在许多代码审查中,他们建议不要使用i,j作为变量..是否有任何特定的原因可以避免在for循环中使用i,j。为什么要避免使用i,j in for循环

e.g

for (int i=0; i<10; i++) 
{ 

} 
+5

谁告诉你应该避开它们?它是公约中使用的基本迭代器变量。他们是完美的使用。 –

+0

他们说这是因为它不遵循骆驼命名约定来声明变量 –

+0

可能的重复:http://stackoverflow.com/questions/5802403/using-single-characters-for-variable-names-in-loops-exceptions – Cantillon

回答

4

基本原则是使用有意义的变量名。 i不是很有意义,但是,在for循环中,当for循环的范围非常小时,它通常不是问题。对于大多数开发人员来说,循环变量的一个字母变量是非常直观的,并且当该变量仅用于一行或两行时,这不是什么大问题。另一方面,当范围变大时,更难遵循实际的i。但是再次,通常在for循环中不应该有多行代码(只是一个方法调用),以使代码尽可能可读。

尽管如此,即使是一个单一线条体的循环,我宁愿使用比i更有意义的名称。例如,i变量代表的是什么?如果你可以给它一个更有意义的名字,比如indexrowNumber,你应该这样做。它使你的代码更容易理解。

0

一个字母的名字往往传达没有关于它们含有或代表什么样的信息。使用简短的描述性词语(例如row,attempt,element等)通常是更好的选择。

+0

这正是他们告诉我的......但是当它只是一个循环重复变量......为什么不使用i,j ......现在在血液中......为什么我想到一个名称.. –

+0

没有这样的事情,“[简单]循环重复变量”; *一切*意味着*某事*。 –

1

如果你的变量比迭代一个数组或其他类型的数据结构还有其他意义,那么你应该使用一个更有意义的变量名,否则就可以使用i或j。