forループで変数名としてiがよく使われるのはどうしてか

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

プログラミングの学習書のみならず実際のソースコードでも往々にして変数名としてiやj, k, l, m, nがよく使われている。例えば以下のコードだ。

[cpp]for (int i = 0; i < 10; i++) {
printf("loop count: %d", i);
}[/cpp]

これはなぜだろうか、述べてみたい。

実はこれはFORTRANで行っていた慣習が絡んでいる。

FORTRANでは暗黙的に変数の型を決定するしくみがあり、I, J, K, L, M, Nから始まる変数は暗黙的に整数型となるからである。 ((それ以外で始まる変数は実数型となる))

なお、implicit noneを使えば明示的な型の指定が必要になるが、一般的にはそれが無視されてしまって、慣習的にI〜Nで始まる変数は整数型ということになってしまった。

このFORTRANの慣習が影響して、C言語やJava、PHPなどにforループのカウンターを扱う変数として半ば慣習的に使われるようになったものと考えられる。当然のことながらこれらの言語でforループを使う場合、基本的には整数型になるため、わざわざi〜nを使う必要はなく、意味にわかりやすい変数を使った方が望ましいと考えられるのだが ((私の場合、配列のインデックスとしてはindexやidx、表などの多次元配列であればrowとcolumnなどをよく使っている)) 。

プログラミングの学習書を読んでコードを書いているだけでは変数の意味を意識した書き方をなかなか習得できない可能性があるので、その処理の意味や、変数の意味、あるいはどうしたらわかりやすいのかを意識すると良いだろう。

タイトルとURLをコピーしました