【问题标题】:Why to avoid using i, j in for loop [closed]为什么要避免在 for 循环中使用 i,j [关闭]
【发布时间】:2012-09-11 11:08:18
【问题描述】:

在许多代码审查中,他们建议不要使用 i, j 作为变量。是否有任何具体原因避免在 for 循环中使用 i, j。

例如

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

}

【问题讨论】:

  • 谁告诉你应该避开它们?它是甚至在约定中使用的基本迭代器变量。它们非常适合使用。
  • 他们这么说是因为它不遵循驼峰命名约定来声明变量
  • 你怎么能骆驼大小写一个字母? :)
  • 是否提到了来自互联网的代码审查,或者可能是工作中的代码审查?因为如果代码审查是在工作中进行的,那么避免 i 和 j 在循环中可能是该公司的标准;公司编码风格通常会覆盖一般约定。另一方面,与 .net 相关,您应该尝试使用迭代器,而不是每次都可以使用索引的 for 循环。

标签: .net coding-style


【解决方案1】:

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

尽管如此,即使循环只有一行,我也更喜欢一个比i 更有意义的名称。例如,i 变量究竟代表什么?如果您可以给它一个更有意义的名称,例如indexrowNumber,您应该这样做。它使您的代码更易于理解。

【讨论】:

    【解决方案2】:

    如果您的变量除了迭代数组或其他类型的数据结构之外还有其他含义,您应该使用更有意义的变量名称,否则使用 i 或 j 是可以的。

    【讨论】:

      【解决方案3】:

      单字母名称往往不会传达有关它们包含或代表什么的信息。使用简短的描述性词(例如rowattemptelement 等)通常是更好的选择。

      【讨论】:

      • 这正是他们告诉我的......但是当它只是一个循环重复变量时......为什么不使用 i , j......它现在在血液中......为什么我认为的名字..
      • 没有“[简单]循环重复变量”这样的东西; everything 意思是 something
      猜你喜欢
      • 2017-01-06
      • 1970-01-01
      • 2023-03-27
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      相关资源
      最近更新 更多