プロが教えるわが家の防犯対策術!

皆さん1度は、ループカウンタ(for文、while文)でⅰを使ったことがあると思うのですが。
なぜ、ⅰなのでしょう?ⅰには何の意味があるのでしょうか?
どなたか教えて下さい。よろしくお願いします。

A 回答 (9件)

FORTRAN では、宣言なしの I から始まる変数は整数であると規定されてました。


ループカウンタは普通整数のため、I が良く使われたのです。つまり、INTEGER の I です。

C は、int だから i なのかな?
    • good
    • 0

C言語使いの皆が使うループカウンタは


FORTRANのループカウンタが起源である。

んで、FORTRANのループカウンタは
数学使いの慣習である添字iが起源である。

んで、その数学畑のiの意味を、
ちょっと調べてみたところ添字(Index)の頭文字iである。

...本当かなぁ?

自分は最初iterationと思ってたけど、どこかの本には
「違う」と書いてあったのを覚えてる。

参考URL:http://ja.wikipedia.org/wiki/%E5%A4%89%E6%95%B0
    • good
    • 0

No2の方が答えていらっしゃいますが、Fortranの仕様です。



質問の意図から外れますが、慣習的にループカウンタをi,j,kで使うことは良くあります。ついついなれて使用していたとき、ある二次元配列のインデックスをi,jでループさせているときに、ついついi,jを逆に書いてしまい、バグを作りこんだ経験があります。目で見たときにも発見し辛いですから。
それ以来、i,jを使うことはやめることにしてます。
    • good
    • 0

incrementでないのは分かったのですが、残りの2つ(integer,iteration)のうちのどちらかについては、微妙ですね。



国内のサイト[infoseek.co.jp]でいろいろと調べた所、以下のようなサイトを見付けました。このpdfファイル内の6ページ目には、「慣習的に使われる変数名」という表があり、その中では「iteratorの頭文字。」という風に説明されています。
http://hp.vector.co.jp/authors/VA013320/about/bo …

ただ、海外のサイト[altavista,yahoo.com]でも調べてみた所、FORTRANにて使用されるよりも前に、数学的表記として、合計と掛け算のためのインデックスリストとして、しばしばiやjが使用されていた、との記述が下の方にあります。
http://encyclopedia.thefreedictionary.com/Loop+c …
http://en.wikipedia.org/wiki/Loop_counter

「語源などについて、どうしても詳しく知りたい。」というのでしたら、一端、数学のカテゴリ内でも質問してみることをお勧めします。
    • good
    • 0

意味については、すでに、ほぼ出そろっていますが



一番大きな理由はFORTRANのサンプルプログラムが、DO 100 =1,NのようにループカウンタとしてIを使っていたからです。
Iが暗黙に整数型の最初であったこともその原因でしょうね。
おそらく、どこの自習書もそうでしょう。

I、J、K、L、M、Nが整数なのについては、INTEGERからNUMERICと言う説は聞いたことがあります。Oまで整数にして、Rから浮動小数点(REAL)でもよかったかかな。

で、CでもK&Rのforの例文がiです。それを見た者は皆iをつかうわけですね。なお、整数値については、nxxxとnで始めていますが、これは多分、numericでしょう。
    • good
    • 0

incrementじゃなくてinteger(整数)のiですね。



「原点をoとする」や「点pを・・・」なども、それぞれorigin(原点)、point(点)の頭文字です。

そういえばFORTRANでは、変数の型を指定しない場合、i,j,k,l,m,nで始まる変数は自動的に整数型、それ以外は自動的に浮動小数点型になったりもしますね。
    • good
    • 0
この回答へのお礼

皆さん、本当にありがとうございました。
こんなにたくさんの意見が聞けるとは思いませんでした。

お礼日時:2005/07/02 01:45

歴史的な理由によります。


数十年前はコンピュータ言語はアセンブラ、COBOL,FORTRAN程度しかありませんでした。
そのなかで、FORTRANで変数を定義するときに、暗黙の型宣言という規則がありました。それは、変数がI,J,K,L,M,Nで始まるもの(例I,I1,III,J,JJ,K2など)は、全て整数型として扱い、それ以外の変数(A,AA,BB)などはfloat型として扱うというものです。そのために、整数型変数を使用するときI,J,Kなどが一般的に用いられるようになりました。
従って、この慣習がC言語,PL/Iなどでも使用されるようになりました。なお、変数が小文字を使用できるのは、C言語,PL/I以降になってからであり、当時のFORTRANでは、大文字のみしかしようできませんでした。(そもそも小文字という概念すらありませんでした。最近のFORTRANについては小文字が使えるかどうかは私は判りません)
C言語においては、一般的に変数は小文字を使用し、#defineで使用する定数は大文字を使用する関数があります。従って、整数の変数については、FORTRAN時代に使用されたI,J,Kがi,j,kとして使用されるようになりました。
    • good
    • 0

ループカウンタの場合はiterationのiだったと思います。


ただ、それ以外にFORTRANではiからnが暗黙の整数型だったような記憶があるので、そこからの類推でもあるのではないでしょうか?この場合はおそらくintegerのiだと思います。
    • good
    • 0

increment の iです。


あとはアルファベットでjkとつづきますけど。
    • good
    • 0
この回答へのお礼

なるほど。
そのままなんですね(笑)
ありがとうございました。

お礼日時:2005/07/02 00:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!