Hat jemand darüber nachgedacht, warum so viele von uns dasselbe Muster mit denselben Variablennamen wiederholen?
for (int i = 0; i < foo; i++) {
// ...
}
Es scheint, dass der meiste Code, den ich je gesehen habe, verwendet i
wird j
, k
und so weiter als Iterationsvariablen.
Ich nehme an, ich habe das irgendwo aufgegriffen, aber ich frage mich, warum das in der Softwareentwicklung so verbreitet ist. Ist es etwas, was wir alle von C aufgegriffen haben oder so?
Nur ein Juckreiz, den ich schon eine Weile im Hinterkopf hatte.
ii
(undjj
,kk
...) , so dass es leichter zu finden , ist bei der Suche.Antworten:
i
undj
werden in der Regel seit geraumer Zeit in Mathematik als Index verwendet (z. B. sehen Sie auch in Aufsätzen, die älter sind als höhere Sprachen, häufig Dinge wie "X i, j ", insbesondere in Dingen wie einer Summierung).Als sie Fortran entworfen haben, haben sie (anscheinend) beschlossen, dasselbe zuzulassen, sodass für alle Variablen, die mit "I" bis "N" beginnen, standardmäßig eine Ganzzahl und für alle anderen eine reelle Zahl (Gleitkommazahl) festgelegt ist. Für diejenigen, die es verpasst haben, ist dies die Quelle des alten Witzes "Gott ist real (es sei denn, es wird eine Ganzzahl angegeben)".
Die meisten Menschen scheinen wenig Grund gesehen zu haben, dies zu ändern. Es ist allgemein bekannt und verstanden und ziemlich prägnant. Von Zeit zu Zeit sieht man etwas, das von einem Psychotiker geschrieben wurde, der denkt, dass etwas einen echten Vorteil hat:
Zum Glück ist dies recht wenn auch selten, und die meisten Styleguides jetzt darauf hin , dass während lange, beschreibende Variablennamen können nützlich sein, Sie nicht immer sie brauchen, vor allem für so etwas wie dies in dem Anwendungsbereich der Variable nur eine oder zwei Zeilen von Code .
quelle
i
- Index.Eine temporäre Variable, die zum Indizieren der Schleifeniteration verwendet wird. Wenn Sie bereits haben
i
, was ist natürlicher , als gehenj
,k
und so weiter?In diesem Zusammenhang
idx
wird häufig auch verwendet.Kurz, einfach und zeigt genau, wie die Verwendung der Variablen ist, wie der Variablenname sein sollte.
quelle
i
für Schleifen.i
könnte dies auch Iterator bedeuten.In FORTRAN
i
wurde als erster Buchstabe standardmäßig der Integer-Typ verwendet. Die gesamte Palette der impliziten Ganzzahltypen begann mit den Buchstabeni
bisn
. Arbeiten mit Schlaufen für drei Dimensionen hat unsi
,j
undk
. Das Muster wurde für zusätzliche Abmessungen fortgesetzt. Ebenso wurden 'x', 'y' und 'z', die standardmäßig als Gleitkomma verwendet wurden, für Schleifenvariablen verwendet, für die reelle Zahlen erforderlich waren.Wie
litleadv
bemerkt,i
ist auch eine minimale Kontraktion für den Index.Angesichts der lokalen Verwendung dieser Variablen sehe ich kein Problem darin, keinen aussagekräftigeren Namen zu verwenden.
quelle
Ich glaube es kommt aus der Summation :
quelle
Abgesehen von meiner Theorie des Rechenprofessors vor ein paar Jahren wurde mir gesagt, dass der Ursprung in der mathematischen Summationsnotation lag. i, j, k wurden häufig als ganzzahlige Iterationsvariablen verwendet und wurden aus den frühen Texten zur Berechnungstheorie übernommen (die natürlich in erster Linie die angewandte Mathematik ist). Offenbar auf die Arbeit von Knuth et al. sichert dies.
x, y, z als Gleitkomma-Iteranten kamen anscheinend mit der Popularität von Fortran in den physikalischen Wissenschaften von Physikerforschern, die Integrale in Quellcode umwandelten (da Integrationen gewöhnlich über räumliche Grenzen gingen ... wie x zu 100 und so weiter).
Ich habe keine Referenz, um dies zu belegen, aber wie ich schon sagte, stammte es von einem ziemlich alten Professor und scheint sehr sinnvoll zu sein.
Hoffe das hilft
quelle
Ich denke, i, j, k werden in der Mathematik verwendet, um Indizes in Summationen und für Matrixelemente anzugeben (i für die Zeilen und j für die Spalten). In der mathematischen Notation werden einige Buchstaben häufiger mit einer bestimmten Bedeutung verwendet als andere, z. B. a, b, c für Konstanten, f, g, h für Funktionen, x, y, z für Variablen oder Koordinaten, i, j, k für Indizes. Zumindest erinnere ich mich an die Mathematik, die ich in der Schule gemacht habe.
Vielleicht wurde diese Notation auf das Rechnen übertragen, weil viele Informatiker zu Beginn Mathematiker waren oder zumindest einen starken mathematischen Hintergrund hatten.
quelle
I == Iterator oder Index
Ich habe immer verstanden, dass 'i' eine gute Wahl ist, da Schleifen normalerweise zum Iterieren oder Durchlaufen mit einem bekannten Indexschritt dienen. Die Buchstaben 'j' und 'k' folgen gut, da häufig verschachtelte Schleifen benötigt werden und die meisten instinktiv 'j' == zweiter Index und 'k' == dritter Index kennen, da sie diesem Muster im Alphabet folgen. Wenn viele dieser Standardkonvention folgen, kann man sicher annehmen, dass eine 'k'-Schleife wahrscheinlich eine' j'- und eine 'i'-Schleife haben wird, die sie umschließen.
quelle
i, j, k werden im kartesischen Koordinatensystem verwendet. Im Vergleich zu x und y, die Achsen desselben Systems darstellen und immer als Variablen verwendet werden, können wir sagen, dass i, j und k ebenfalls von dort stammen.
quelle
"i" steht für index.
Ein einzelner Buchstabe erleichtert es Ihrem Auge, die Codezeile zu scannen. Für etwas, das so häufig ist wie eine Schleife, ist ein einzelnes Zeichen für den Index ideal. Es gibt keine Verwirrung darüber, was "ich" aufgrund der Konvention bedeutet.
quelle
Als ich anfing zu programmieren, war Dartmouth BASIC neu. Alle Variablen in dieser und einigen anderen Sprachen waren zu diesem Zeitpunkt einzelne Zeichen. Hinzu kommt die FORTRAN-Variablennamenskonvention und die Tatsache, dass es viel einfacher ist, nur ein Zeichen einzugeben, sowie das Verständnis älterer Programmierer und Lehrer. Ich weiß es nicht, aber es hört sich gut an.
quelle