Quelqu'un a-t-il réfléchi à la raison pour laquelle tant d'entre nous répètent ce même modèle en utilisant les mêmes noms de variables?
for (int i = 0; i < foo; i++) {
// ...
}
Il semble la plupart du code que j'ai jamais regardé les utilisations i
, j
, k
et ainsi de suite comme variables d'itération.
Je suppose que je l’ai prise quelque part, mais je me demande pourquoi cela est si répandu dans le développement de logiciels. Est-ce quelque chose que nous avons tous pris de C ou quelque chose comme ça?
Juste une démangeaison que j'ai depuis un moment dans le dos de ma tête.
ii
(etjj
,kk
...) afin qu'il soit plus facile à localiser lors de la recherche.Réponses:
i
etj
ont généralement été utilisés comme indices dans un bon nombre de mathématiques pendant un bon bout de temps (par exemple, même dans des documents antérieurs à des langages de niveau supérieur, vous voyez souvent des choses comme "X i, j ", en particulier des choses comme une sommation).Lorsqu’ils ont conçu Fortran, ils ont (apparemment) décidé d’autoriser la même chose. Ainsi, toutes les variables commençant de "I" à "N" sont définies par défaut en nombre entier et toutes les autres en valeurs réelles (virgule flottante). Pour ceux qui l'ont manqué, c'est la source de la vieille blague "Dieu est réel (sauf si déclaré entier)".
La plupart des gens semblent avoir vu peu de raisons de changer cela. C'est largement connu et compris, et assez succinct. De temps en temps, vous voyez quelque chose d'écrit par un psychotique qui pense que quelque chose comme:
Heureusement, cela reste assez rare, et la plupart des guides de style soulignent maintenant que, même si de longs noms descriptifs de variables peuvent être utiles, vous n'en avez pas toujours besoin, en particulier pour quelque chose comme ceci où la portée de la variable ne représente qu'une ligne ou deux de code. .
la source
i
- index.Variable temporaire utilisée pour l'itération de la boucle d'indexation. Si vous avez déjà un
i
, ce qui est plus naturel que d' allerj
,k
et ainsi de suite?Dans ce contexte,
idx
on utilise souvent aussi.Short, simple et montre exactement l'utilisation de la variable, comme le nom de la variable devrait l'être.
la source
i
pour les boucles.i
pourrait aussi signifier itérateur.En FORTRAN
i
était la première lettre à utiliser par défaut le type entier. La gamme complète des types entiers implicites était composée de tous les éléments commençant par les lettresi
àn
. Travailler avec des boucles pour trois dimensions nous ai
,j
etk
. Le motif a continué pour des dimensions supplémentaires. De même, «x», «y» et «z», qui sont définis par défaut comme virgule flottante, sont utilisés pour les variables de boucle qui nécessitent des nombres réels.Comme les
litleadv
notes,i
est également une contraction minimale pour l’index.Étant donné l'utilisation locale de ces variables, je ne vois pas de problème à ne pas utiliser un nom plus descriptif.
la source
Je crois que cela vient de la Summation :
la source
Mon professeur de théorie de l'informatique, il y a quelques années, m'avait dit que l'origine était issue de la notation de sommation mathématique. i, j, k étaient couramment utilisés en tant que variables d'itération d'entiers, et ils ont été transférés à partir des premiers textes sur la théorie du calcul (qui, bien entendu, concerne principalement les mathématiques appliquées). Apparemment, en regardant le travail de Knuth et al. soutient ceci.
x, y, z en tant qu'itérateurs à virgule flottante sont apparemment apparus avec la popularité de Fortran dans les sciences physiques, des chercheurs en physique convertissant des intégrales en code source (puisque les intégrations étaient généralement par-dessus des limites spatiales ... alors que x passait à 100 et cetera)
Je n'ai pas de référence pour appuyer cela, mais comme je l'ai dit, cela vient d'un professeur assez âgé et semble avoir beaucoup de sens.
J'espère que cela t'aides
la source
Je pense que i, j, k sont utilisés en mathématiques pour indiquer des indices dans des sommations et des éléments de matrice (i pour les lignes et j pour les colonnes). En notation mathématique, certaines lettres ont tendance à être utilisées avec une signification spécifique plus souvent que d’autres, par exemple a, b, c pour les constantes, f, g, h pour les fonctions, x, y, z pour les variables ou les coordonnées, i, j, k pour les indices. Au moins c'est ce que je me souviens des maths que j'ai prises à l'école.
Peut-être que cette notation a été transférée à l’informatique car au début, de nombreux informaticiens étaient mathématiciens ou avaient au moins de solides connaissances en mathématiques.
la source
i == itérateur ou index
Ma compréhension a toujours été que «i» est un bon choix, car les boucles servent généralement à itérer ou à parcourir avec une étape d'index connue. Les lettres "j" et "k" suivent bien, car les boucles imbriquées sont souvent nécessaires et la plupart des gens sauront instinctivement "j" == deuxième index et "k" == troisième index car ils suivent ce modèle dans l'alphabet. De plus, si beaucoup respectent cette convention standard, on peut supposer en toute sécurité qu'une boucle "k" sera probablement entourée d'une boucle "j" et d'une boucle "i".
la source
i, j, k sont utilisés dans le système de coordonnées cartésien. En comparant avec x et y, qui représentent des axises dans le même système et qui sont toujours utilisés comme variables, nous pouvons dire que i, j et k viennent aussi de là.
la source
"i" est pour index.
Une seule lettre permet à votre œil de numériser plus facilement la ligne de code. Pour quelque chose d'aussi commun qu'une boucle, un seul caractère pour l'index est idéal. Il n'y a pas de confusion quant à ce que "i" signifie en raison de la convention.
la source
Quand j'ai commencé à programmer, Dartmouth BASIC était nouveau. Toutes les variables de cette langue et de quelques autres langues à l’époque étaient composées d’un seul caractère. Ajoutez à cela la convention de nommage des variables FORTRAN et le fait qu'il est beaucoup plus facile de taper un seul caractère et la compréhension des programmeurs et des enseignants plus anciens. Je ne sais pas, mais ça sonne bien.
la source