Adakah yang berpikir mengapa banyak dari kita mengulang pola yang sama ini menggunakan nama variabel yang sama?
for (int i = 0; i < foo; i++) {
// ...
}
Tampaknya kode paling aku pernah melihat kegunaan i
, j
, k
dan sebagainya sebagai variabel iterasi.
Saya kira saya mengambilnya dari suatu tempat, tapi saya heran mengapa ini begitu lazim dalam pengembangan perangkat lunak. Apakah itu sesuatu yang kita semua ambil dari C atau sesuatu seperti itu?
Gatal-gatal saja untuk sementara waktu di belakang kepalaku.
ii
(danjj
,kk
, ...) sehingga lebih mudah untuk menemukan ketika mencari.Jawaban:
i
danj
biasanya telah digunakan sebagai subskrip dalam sedikit matematika untuk beberapa waktu (misalnya, bahkan dalam makalah yang mendahului bahasa tingkat yang lebih tinggi, Anda sering melihat hal-hal seperti "X i, j ", terutama dalam hal-hal seperti penjumlahan).Ketika mereka merancang Fortran, mereka (tampaknya) memutuskan untuk mengizinkan hal yang sama, jadi semua variabel dimulai dengan "I" hingga "N" default ke integer, dan semua yang lain menjadi nyata (floating point). Bagi mereka yang telah melewatkannya, ini adalah sumber dari lelucon lama "Tuhan itu nyata (kecuali dinyatakan bilangan bulat)".
Sebagian besar orang tampaknya hanya melihat sedikit alasan untuk mengubahnya. Ini dikenal luas dan dipahami, dan cukup ringkas. Sesekali Anda melihat sesuatu yang ditulis oleh beberapa psikotik yang berpikir ada keuntungan nyata untuk sesuatu seperti:
Untungnya ini cukup langka, dan sebagian besar panduan gaya sekarang menunjukkan bahwa sementara panjang, nama variabel deskriptif dapat berguna, Anda tidak selalu membutuhkannya, terutama untuk sesuatu seperti ini di mana ruang lingkup variabel hanya satu atau dua baris kode .
sumber
i
- indeks.Variabel sementara yang digunakan untuk pengulangan loop pengindeksan. Jika Anda sudah memiliki
i
, apa yang lebih alami daripada pergi kej
,k
dan sebagainya?Dalam konteks
idx
itu sering digunakan juga.Pendek, sederhana, dan menunjukkan dengan tepat apa penggunaan variabel, sebagaimana nama variabel seharusnya.
sumber
i
loop.i
bisa berarti iterator juga.Dalam FORTRAN
i
adalah huruf pertama ke default ke tipe integer. Berbagai jenis bilangan bulat implisit yang setiap dimulai dengan hurufi
untukn
. Bekerja dengan loop selama tiga dimensi membuat kamii
,j
dank
. Pola berlanjut untuk dimensi tambahan. Demikian juga, 'x', 'y', dan 'z' yang default sebagai titik mengambang di mana digunakan untuk variabel loop yang membutuhkan bilangan real.Sebagai
litleadv
catatan,i
juga merupakan kontraksi minimal untuk indeks.Mengingat penggunaan lokal dari variabel-variabel ini, saya tidak melihat masalah tidak menggunakan nama yang lebih deskriptif.
sumber
Saya percaya itu berasal dari Penjumlahan :
sumber
Saya diberitahu, di samping oleh teori komputasi profesor saya beberapa tahun yang lalu, bahwa asalnya adalah dari penjumlahan penjumlahan matematika. i, j, k umumnya digunakan sebagai variabel iterasi integer, dan ditransfer dari teks awal tentang teori perhitungan (yang tentu saja terutama diterapkan matematika). Rupanya melihat karya Knuth et al. mendukung ini.
x, y, z sebagai floating point iterants tampaknya datang dengan popularitas Fortran dalam ilmu fisika, dari para peneliti fisika mengubah integral menjadi kode sumber (karena integrasi biasanya lebih dari batas spasial ... seperti x pergi ke 100 et cetera)
Saya tidak memiliki referensi untuk mendukung ini, tetapi seperti yang saya katakan, itu berasal dari seorang profesor yang cukup tua dan tampaknya masuk akal.
Semoga ini membantu
sumber
Saya pikir i, j, k digunakan dalam Matematika untuk menunjukkan indeks dalam penjumlahan dan untuk elemen matriks (i untuk baris dan j untuk kolom). Dalam notasi matematika, beberapa huruf cenderung digunakan dengan makna spesifik lebih sering daripada yang lain, misalnya a, b, c untuk konstanta, f, g, h untuk fungsi, x, y, z untuk variabel atau koordinat, i, j, k untuk indeks. Setidaknya ini yang saya ingat dari Matematika yang saya ambil di sekolah.
Mungkin notasi ini telah dipindahkan ke komputasi karena pada awalnya banyak ilmuwan komputer adalah ahli matematika atau setidaknya memiliki latar belakang matematika yang kuat.
sumber
i == iterator atau indeks
Pemahaman saya selalu 'i' adalah pilihan yang baik karena loop biasanya untuk iterasi atau melintasi dengan langkah indeks yang dikenal. Huruf 'j' dan 'k' mengikuti dengan baik karena loop bersarang sering diperlukan dan sebagian besar akan secara naluriah mengetahui 'j' == indeks kedua dan 'k' == indeks ketiga karena mereka mengikuti pola itu dalam alfabet. Selain itu, dengan banyak orang mengikuti konvensi standar ini, orang dapat dengan aman menganggap loop 'k' kemungkinan akan memiliki loop 'j' dan 'i' yang membungkusnya.
sumber
i, j, k digunakan dalam sistem koordinat Cartesius. Dibandingkan dengan x dan y yang mewakili sumbu dalam sistem yang sama dan yang selalu digunakan sebagai variabel, kita dapat mengatakan bahwa i, j dan k juga berasal dari sana.
sumber
"i" adalah untuk indeks.
Satu huruf memudahkan mata Anda untuk memindai baris kode. Untuk sesuatu yang umum seperti loop, satu karakter untuk indeks sangat ideal. Tidak ada kebingungan tentang apa arti "i" karena konvensi.
sumber
Ketika saya mulai pemrograman, Dartmouth BASIC masih baru. Semua variabel dalam hal ini dan beberapa bahasa lain pada saat itu adalah karakter tunggal. Tambahkan ke bahwa konvensi penamaan variabel FORTRAN dan fakta bahwa jauh lebih mudah untuk mengetik, hanya satu karakter, dan pemahaman dari programmer dan guru yang lebih tua. Saya tidak tahu, tapi kedengarannya bagus.
sumber