【问题标题】:Who "invented" i,j,k as integer counter variable names? [duplicate]谁“发明”了 i,j,k 作为整数计数器变量名? [复制]
【发布时间】:2010-11-11 22:48:19
【问题描述】:

可能重复:
Why are we using i as a counter in loops

我自己已经使用了超过 15 年,但我真的不记得我是如何/在哪里养成这种习惯的。由于它非常普遍,我很想知道是谁最初建议/推荐将这些名称用于整数循环计数器(是 K&R 的书吗?)。

【问题讨论】:

标签: naming-conventions loop-counter


【解决方案1】:

i = 整数

来自 Fortran,其中整数变量必须以字母 I 到 N 开头,而实变量必须以其他字母开头。因此,我是第一个也是最短的整数变量名。 Fortran 是最早被广泛使用的编程语言之一,程序员使用它所养成的习惯也延续到了其他语言。

(来自:Why are we using i as a counter in loops

显然,jk 只是您最喜欢的字母表中的下一个。

【讨论】:

  • 也许是后来添加的,但至少在 FORTRAN-G 中,以 I-N 开头的变量在 INTEGER 除非另有声明。说“REAL IVAR”或“INTEGER A”是完全合法的。
  • 我认为这是真的,但有点倒退。 I JK 在 FORTRAN 中是整数,因为有使用这些字母作为索引变量的约定,而不是相反。预先存在的约定来自数学。
  • @JasonOrendorff:你是对的,另见stackoverflow.com/a/4137890/19254
【解决方案2】:

数学家 :)

【讨论】:

  • 我同意。见summation notation。大多数示例使用 ijk 作为索引变量。一个脚注说:“尽管虚拟变量的名称并不重要(根据定义),但通常使用字母表中间的字母(iq)来表示表示整数,如果存在混淆的风险。”我的印象是,这是一个非常古老的约定。
  • 使用“希腊字母Σ求和”的是attributed to Euler,他死于1783年;但它并没有说明他习惯性地使用哪些字母来表示索引变量......
  • 相反,数学家也用'i'作为虚数单位
【解决方案3】:

FORTRAN。如果第一个字符是 I、J、K、L、M 或 N,则变量是整数(即可以保存整数值)。否则,它是真实的(即可以根据浮点约定保存一个值)。

【讨论】:

    【解决方案4】:

    这在学校级别和大学级别的代数练习中很常见(尽管 xy 在那里也发挥了作用:-)

    另外,如果我没记错的话,早期的编程语言(如 FORTRAN 的早期版本)使用变量命名的方式是首字母很重要,这可能起到了一定的作用。例如,正如this page 所说:

    FORTRAN 变量是一种 指计算机的一个单元。 变量名称必须符合 以下规则:

    1. 名称可以是一到六个字符。
    2. 第一个字符必须是字母。
    3. 第一个以外的字符可以是字母或数字。
    4. 如果第一个字符是 I、J、K、L、M 或 N,则变量为整数 (即可以保存一个整数值)。 否则,它是真实的(即可以持有 根据浮点数的值 公约)。

    【讨论】:

      【解决方案5】:

      我一直认为 i 代表在数学求和公式中使用的索引。

      【讨论】:

        【解决方案6】:

        来自Loop Counter 的维基百科

        通用标识符命名约定 是让循环计数器使用 变量名 i、j 和 k(等等 如果需要),我会是最 外循环,j 下一个内循环, 等等。相反的顺序也被使用 一些程序员。这种风格是 普遍认为起源于 从 FORTRAN 的早期编程开始, 这些变量名开始的地方 这些字母含蓄地 声明为具有整数类型, 循环的明显选择也是如此 只是暂时的计数器 必需的。这种做法也可以追溯到 进一步的数学符号 求和和乘法的索引 通常是 i、j 等。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-04-22
          • 1970-01-01
          • 2018-09-16
          • 2014-02-15
          • 1970-01-01
          • 1970-01-01
          • 2021-11-11
          • 1970-01-01
          相关资源
          最近更新 更多