記事検索

検索ワードを入力してください。
Sky Tech Blog
ループ変数の​ i, j, k ...

ループ変数の​ i, j, k ...

ループ処理で慣習的に使われる変数名「i, j, k」。なぜこの文字が使われるのか、その歴史を辿るとプログラミング言語「FORTRAN」に行き着きます。本記事では、さらにそのルーツである数学の慣習(indexのi、行列のi行j列)に触れ、「数学→FORTRAN→現代」という、プログラミングにおける命名規則の意外な歴史的背景を解説します。

実務で​見かける​ループ処理

for(int i=0; i<100; i++) {
 for(int j=0; j<100; i++) {
  for(int k=0; k<100; k++) {

このようにバグを含みやすい変数名 i, j, k, l, m, n は、そもそも何故 i, j, k ... なのでしょうか。

という昔から気にはなっていたことを調べてみると、意外に単純でした。

結論​:

プログラミング言語「FORTRAN」時代の整数を示す変数名からの名残

FORTRANでは、I, J, K, L, M, N から始まる文字であれば、その変数は整数に自動変換されるそうです。

では、なぜFORTRANの設計者は I から始まる文字を整数に選んだのか?

プログラミングが生まれる前の数学の世界では、

  • 数列の添え字 (index) として i
  • 行列の i 行 に対する j 列

のように、整数を扱う添え字に i や j を使うのが慣習でした。

FORTRANは、この数学の慣習を言語仕様に取り入れたという話がありまして、つまり「数学の慣習 → FORTRANの仕様 → 現代のプログラミング」という歴史的な流れがある、ということです。

現代では、無意味な変数名は避けて意味のある変数名を付けましょうという考え方がスタンダードです。

i と j のスペルミスは多くのエンジニアが通る道、というのは過去の話かもしれませんが、そんな罠にも歴史的な背景があったことを知ると、いつか誰かに伝えたくなりますね。

お読みいただき、ありがとうございました。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム