「エンジニアあるある」第26回
ループ変数はとりあえずiを使い、足りなくなるとj、kと使うが、
さらに足りないとlを使おうとして
なんとなくヤバイ感じがして、iiを使う。
…私はITエンジニアではなく、メカエンジニアですが、
これは物凄くわかります。
私のいた学校では工学系に入ると
どの専攻でも簡単なプログラムの授業があります。
機械もプログラムで動くものがありますからね。
なぜ動くのかを理解するための最低限の知識は必要になるわけです。
当然ながら、機械を動かすための
プログラムを作りましょうという課題もあるわけですが
その時もループ変数はi,j,kを使っていましたね。
教科書に載っているからと言う理由で
当たり前のように使っていました。
そもそもループって何なのさ?
プログラムの抜粋で説明します。
※実際にはこれだけでは動きません…
と言うより約10年ぶりのエセプログラムです。
間違っていたらごめんね。
for (i=0 ; i<3 ; i++){
printf("test");
}
重要なのは( )の中にある3つの式。
この3つの式を使ってiの値を変化させる事で、
{ }の中を動かしていきます。
for (i=0 ; i<3 ; i++)
左のi=0は初期の式です。
このループに入ったら最初はiは0ですよと言う事です。
あまり見ないですが、1から始めたり100から始めるなんてことも可能です。
for (i=0 ; i<3 ; i++)
真ん中のi<3はループから抜ける条件です。
つまりiが3以上の数字になったらこのループから抜け出せます。
for (i=0 ; i<3 ; i++)
i++はループが終わった後に行われる処理です。
++は1増えることを意味します。
つまりi=0でループを終えたらi=1になります。
その後、先ほど出てきた「i<3」か?の判別をし、
ループから抜け出せるかが決まるわけですが、
1は3よりも小さいので、i=1のまま、ループの最初に戻ります。
iはindexのi…なのかもしれない
せっかくループ変数の疑問を持ったので
調べてみるとこんな記事が出てきました。
(googleの力はすごいぞ)
iからnが整数型(小数がない型)だったそうです。
小数のない数字→カウントに使えるでiから始まるのだとか。
ただ、L以降の数字は
「あるある」の通りあまり見ないですね。なぜでしょうね…
今回、たまたま見かけただけのですが
1人のエンジニア(仮)として凄く共感してしまいました。
別のあるある記事も見て面白そうなのがあったら、
また書こうと思います(笑)