为什么习惯使用 i、j、k 等作为循环变量?
现在之所以习惯使用i、j、k 等作为循环变量,有两个可信度比较高的说法。第一个就是FORTRAN语言“旧习难改”;第二个就是纪念迪杰斯特拉。
先来说第一个说法吧。也就是FORTRAN语言,这个是一个“骨灰级”的静态编程语言,一般来说,除非是路劲依赖问题,否则基本没人用了。而之所以有人认可习惯使用 i、j、k 等作为循环变量是因为FORTRAN语言有有一条规则,叫做i到n的规则,也就是没有明确数据类型的变量,如果是采取以 i、j 、k、l、m字母开头的变量,为整型变量,否则就是实型变量(现在叫做浮点型)。那为什么是i开头呢?英语好的人肯定已经知道了,因为i是 integer(整数)的开头字母。当然,其实我感觉这个说法是可信度是不如第二个高的。
再来说第二个说法,我个人是偏向这个的。因为习惯使用 i、j、k 等作为循环变量是出自算法书籍里面的,上面FORTRAN语言只是用作普通变量,而循环变量大多数是算法书籍里面出现的。而迪杰斯特拉写了一些很厉害的算法(迪杰斯特拉算法),也编写了一些传奇算法书籍,为了纪念迪杰斯特拉的贡献,人们就使用 i、j、k 等作为循环变量,因为迪杰斯特拉的英文名是Dijkstra,里面是不是有i、j、k。这就像C语言之父在丹尼斯里奇在C语言书籍中写的那个“Hello,World”一样,以后编程软件开头第一个输出代码就是“Hello,World”。
总的来说,说法有连个。但我更认可第二个,也就是纪念迪杰斯特拉,因为循环变量大多数是出现在算法程序中。