なぜプログラムのFor構文などの例文で使われる関数はいつも”i”なのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:ma2ma2 No.1

回答回数121ベストアンサー獲得回数0

ポイント40pt

関数じゃなくて 変数 では?と思うんだけど

IntegerのIだと思ってます。

id:sleepyhead

ごめんなさい、変数ですね(汗

IntegerのIですか。なるほど…そう思うと納得行きますね。

2004/06/06 21:10:53
id:cx20 No.2

回答回数607ベストアンサー獲得回数108

ポイント40pt

ループカウンタなどで使う変数に i が

よく使われる理由ですが、

i … integer(整数)の略

というのが通説だと思います。

i, j, k とか使いますね。

起源は、FORTRAN ですかね。

違ってたらすみません。

id:sleepyhead

自分もj、kとかよく使うので何でaから始めないんだろうと思ってたんですが、やはりintegerのことのようですね。

2004/06/06 21:14:29
id:virus No.3

回答回数183ベストアンサー獲得回数1

ポイント70pt

http://wwwst.sc.musashi-tech.ac.jp/~bulletin/fort77.htm

Fortranコンパイラと基礎的Fortran文法

最初の実用的でもっとも普及した高級言語である FORTRAN では、宣言なしに使った場合、I から始まる変数は整数であると規定されてました。

ループ変数としては整数が一般的ですから、I が良く使われたのでしょう。

その名残だと思います。

id:sleepyhead

おぉ、納得しました!凄い仕様ですねw

2004/06/06 21:16:00
id:underway No.4

回答回数51ベストアンサー獲得回数1

ポイント40pt

諸説あるそうですが、上記URLと同様、私もホストでint型の変数がiから始まるからと聞いたことがあります。

id:sleepyhead

納得しましたので終了します。

みなさんありがとうございました!!

2004/06/06 21:17:04
  • id:wanta
    ちなみに仕事でiとかj使うと怒られますので、要注意。

    ちなみに仕事でiとかj使うと怒られますので、要注意。
  • id:sleepyhead
    sleepyhead 2004/06/06 21:30:41
    Re:ちなみに仕事でiとかj使うと怒られますので、要注意。

    まじですか(汗
    詳しくお話していただけるとありがたいです
  • id:goldman
    Re(2):ちなみに仕事でiとかj使うと怒られますので、要注意。

    >まじですか(汗
    >詳しくお話していただけるとありがたいです
  • id:ma2ma2
    規約とか好みの問題では^^;

    iとか使うと怒られるのは、命名規約に沿ってなかったり、好みに合わなかったり(ぉぃ するからではないでしょうか?
    一文字だけの変数名って、何の為の変数なのかわかりにくいし、
    ソースを目でD追ってるときに見過ごしてしまうので
    私は好きではないのですが。


    そうなんだ FORTRAN なんですね〜。ありがとうございました。
  • id:kazooo3
    Re(2):ちなみに仕事でiとかj使うと怒られますので、要注意。

    変数につけられる文字数の制限が最近の言語ではゆるくなりましたので、変数名はその語を見ただけで意味がわかるような変数名にするようにと指導されます。iでも問題は無いのですが、例えばfor変数だったらfor i=1 to 100(basic)ではなく、for roopcounter=1 to 100 などとプログラム作成者本人以外が見ても判りやすい変数名を付けるのがルールとなってきてますね。
  • id:goldman
    Re:ちなみに仕事でiとかj使うと怒られますので、要注意。

    >ちなみに仕事でiとかj使うと怒られますので、要注意。
    >
    はい,仕事で使った外注さんがいたので,即効で首にしました。
    もう変数にijやsやら・・・話になりません。(プログラムの読み違い等が発生する率が飛躍的に跳ね上がる)
    現場は,プロフェッショナルほど変数1つについてもこだわります。特にijk問題だけは許せないです。そのほかはまあ大目にみますが,要はなぜijkの弊害を理解できないようならば,業務プログラムを組む資格なしということです。
  • id:JULY
    Re:ちなみに仕事でiとかj使うと怒られますので、要注意。

    怒られたこと無い(^^;。

    まぁ、私が仕事で書いたプログラムというのも、たかがしれてますが、
    「明らかに気にとめる必要もない、単純なループカウンタである」と
    いう時には、i、j、k と使っても良いと、個人的には思いますが。

    まぁ、コーディング規約でいろいろと細かく決めてる場合もあります
    が、正直いって、なるほどと思ったコーディング規約に出会ったこと
    がない(^^;。

    古い本ですけど、プログラムをきれいに書く、というのには下記の
    本が参考になると思います。
    http://www.pro.or.jp/~fuji/mybooks/cdiag/
  • id:sleepyhead
    sleepyhead 2004/06/06 21:57:54
    ありがとうございます

    ma2ma2さん、kazooo3さん、goldmanさん、JULYさん ありがとうございます。

    自分も使い捨ての変数は結構適当につけてしまってます。”mawaru”とか他の人が見たら”i”より分かりにくいですね(汗
    これからはちゃんと意識して変数名つけていこうと思います。
  • id:pmakino
    iterator の i …ではない?

    私は iterator (繰り返し) の i だと誰かに言われて今までそれで納得してきたのですが、FORTRAN の変数名説の方がそれっぽいですね…。iterator というのは後から出てきたこじつけというところでしょうか。

    仕事で…という話については、個人的には
    >「明らかに気にとめる必要もない、単純なループカウンタである」と
    >いう時には、i、j、k と使っても良いと、個人的には思いますが。
    に同意ですね。
    変数名や関数名などを、その語を見ただけで意味がわかるようにするのは原則だと思いますが、だからって i のようなものまでいちいち全て roopcounter とかしてたらかえって読みづらくなると思います。
  • id:paffpaff
    Re:iterator の i …ではない?

    roopcounterっていう名前は最悪ですね(笑)

    もし意味のある名前にするなら
    そのループでなにを数えているかっていう名前にすると思います
    コメントも書きますけどね
  • id:cx20
    コーディング規約に関する情報。

    >「明らかに気にとめる必要もない、単純なループカウンタである」と
    >いう時には、i、j、k と使っても良いと、個人的には思いますが。

    そうですね。
    明らかにローカルスコープのループカウンタである場合に限っては、
    「i、j、k」は使っても良いと思います。

    ループカウンタでない変数(カウンタ以外の意味を持つ変数)
    に対して i とか j とか使われるとちょっと問題だと思いますが。

    変数名の基本は、
    ・ローカルスコープ(ローカル変数)には短い名前を
    ・グローバルスコープ(グローバル変数)には長い名前を
    でしょうか。

    個人的には↓この本がお薦めです。

    ■ プログラミング作法
    http://www.amazon.co.jp/exec/obidos/ASIN/4756136494

    あと、仕事の場合、チーム(プロジェクト)ごとに、
    「コーディング規約」を設けている場合があるので、
    通常はそちらに従います。
    「コーディング規約」が無い場合は、言語ごとの推奨
    されているコーディング方法にならいます。

    参考までに、各種言語のコーディング規約/推奨された書き方の
    リンクを載せておきます。

    <C/C++ 関連>
    ■ 変数名の力 - いいプログラムを書こう
    http://homepage1.nifty.com/~takaot/prprpr/varname.html
    ■ プログラミングの禁じ手 C言語編
    http://www.cmagazine.jp/src/kinjite/c/index.html
    ■ プログラミングの禁じ手 C++編
    http://www.cmagazine.jp/src/kinjite/cpp/index.html
    ■ プログラム言語 C の推奨されるスタイルとコーディング規範
    http://www.gfd-dennou.org/arch/comptech/cstyle/cstyle-ja.htm

    <Java 関連>
    ■ Java 言語 コーディング規約
    http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/
    ■ 頑健なJavaプログラムの書き方(Writing Robust Java Code)
    http://www.alles.or.jp/~torutk/oojava/codingStandard/writingrobustjavacode.html

    <VBScript/VB/VB.NET 関連>
    ■ Visual Basic Scripting Edition - VBScript のコード記述規則
    http://www.microsoft.com/japan/msdn/library/ja/script56/html/vbsCodingConventions.asp
    ■ Microsoft Office XP Developer - 変数名
    http://www.microsoft.com/japan/msdn/library/ja/modcore/html/deconvariablenames.asp
    ■ Visual Basic .NET の名前付け規則
    http://www.microsoft.com/japan/msdn/library/ja/vbcn7/html/vaconvbnamingrules.asp
  • id:sleepyhead
    sleepyhead 2004/06/06 23:51:21
    Re:コーディング規約に関する情報。

    ありがとうございます。思わぬところでイイ情報が手に入った、という感じですw
    じっくり読んで参考にさせて頂きます。
  • id:cx20
    Re(2):コーディング規約に関する情報。

    ポイント送信ありがとうございます。

    せっかくなので、
    ■よく利用するプログラミング言語は何ですか?
    http://www.hatena.ne.jp/1086535736
    というアンケートを行ってみました。興味がありましたらどうぞ。

  • id:cline
    Re:ちなみに仕事でiとかj使うと怒られますので、要注意。

    短い変数名は打ち込みやすいが…スパゲッチーになりやすい!
  • id:hajime_ninomae
    Re(2):ちなみに仕事でiとかj使うと怒られますので、要注意。

    >特にijk問題だけは許せないです。

    C++で、
    for( int i=0; i<100; i++ )
    とかだったら問題ない気が、、、
  • id:k_u
    BASICのFOR構文から入ったので…

     incrementと思っていました。
  • id:kajuyone
    Re:iterator の i …ではない?

    indexのiだとおもってました

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません