在大多数流行的编程世界中,当你编写for循环时,它看起来像这样,
for(int i = 0; condition; increment or decrement i) {}
我的问题是,为什么我们写int i = 0?为什么不能默认为int a = 0或int b = 0.我知道这是可能的但是int i = 0后面有任何历史吗?
答案 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;
值得庆幸的是,这是非常罕见的,现在大多数样式指南指出,虽然描述性变量名称很长,但并不总是需要它们,特别是对于这样的变量范围只是一行或者两个代码。
答案 2 :(得分:0)
因为“我基本上是”iterator“或”index“的缩写。在大多数循环中,你正在迭代一个或多个索引。简单就是:) 希望它有所帮助!