为什么每个for循环都以int i = 0开头?

时间:2014-06-23 19:37:33

标签: for-loop naming-conventions conventions

在大多数流行的编程世界中,当你编写for循环时,它看起来像这样,

for(int i = 0; condition; increment or decrement i) {}

我的问题是,为什么我们写int i = 0?为什么不能默认为int a = 0或int b = 0.我知道这是可能的但是int i = 0后面有任何历史吗?

3 个答案:

答案 0 :(得分:2)

在最古老的语言之一FORTRAN中,默认情况下名为I,J,K,L,M和N的变量类型为INTEGER。这些传统上被用作循环中的索引。

传统继续使用C,即使默认类型没有。

数学家习惯于在求和和张量表示法中使用名为i,j,k等的索引。计算机科学和数学曾经紧密结合。

答案 1 :(得分:1)

i和j在很长一段时间内通常被用作相当多的数学下标(例如,即使在高级语言之前的论文中,你经常会看到诸如“Xi,j”之类的东西,尤其是像总结)。

当他们设计Fortran时,他们(显然)决定允许相同,所以所有以“I”到“N”开头的变量默认为整数,其他所有变量都是实数(浮点)。对于那些错过它的人来说,这是旧笑话的来源“上帝是真实的(除非声明整数)”。

大多数人似乎没有理由改变这种情况。它广为人知,并且非常简洁。每隔一段时间你就会看到一些精神病患者所写的东西,他们认为这样的东西有一个真正的优势:

for (int outer_index_variable=0; outer_index_variable < 10; outer_index_variable++)
    for (int inner_index_variable=0; inner_index_variable<10; inner_index_variable++)
        x[outer_index_variable][inner_index_variable] = 0;

值得庆幸的是,这是非常罕见的,现在大多数样式指南指出,虽然描述性变量名称很长,但并不总是需要它们,特别是对于这样的变量范围只是一行或者两个代码。

来源:https://softwareengineering.stackexchange.com/questions/86904/why-do-most-of-us-use-i-as-a-loop-counter-variable

答案 2 :(得分:0)

因为“我基本上是”iterator“或”index“的缩写。在大多数循环中,你正在迭代一个或多个索引。简单就是:) 希望它有所帮助!