ループ変数

提供: MonoBook
移動: 案内検索

ループ変数(英語:loop variable)とは、繰り返し処理において繰り返した回数を数えるための用いる変数のことである。英語圏ではループカウンター(英語:loop counter)と呼ばれることが多い。

変数名 i, j, k[編集]

ループ変数と言っても普通の変数であり、どのような変数名にしようとプログラマーの勝手だが、古くから i, j, k という文字が広く用いられている。

これは太古の時代に一大勢力を誇ったFortranでは「implicit none」と記述していない場合は変数の型宣言が必要なく、その場合は変数名の頭文字でが決定する仕様であり、変数名の頭文字が a~h および o~z で始まる変数基本実数型、i~n で始まる変数基本整数型となる。これをFortranの暗黙の型宣言という。

Fortranの教科書では保守性が良くなるので implicit none は必ず使えと書いてあるが、多くのプログラマーはそんな面倒なことなど無視して暗黙の型宣言を乱用しまくった結果、プログラミング言語の枠を超えてループ変数は i, j, k, l, m, n の6文字が一大勢力を持つようなったと言われている。

なお、Fortran以外ではまったく意味のないものであり、フォントによっては「i」と「j」は非常に見分けづらいため、a でも i でも z でも好きなものを使え。そんなものはどうでもいい話である。

[編集]

C# - forループ[編集]

C#によるループ変数 i および j を使ったfor文による繰り返し処理の記述例を示す。

int i, j;
for (i = 0; i < 100; i++)
{
    for (j = 0; j < 100; j++)
    {
        same_function(i, j);
    }
}


上記のソースコードC#では以下のように書くこともできる。ただしこの場合はfor文は1つのスコープとなるため、ループ変数 j が何度も生成・初期化されてしまい実行速度に影響を及ぼすことがある。しかしながらそのような悪影響を気にしなくても良い場合であれば、変数宣言と利用箇所の近く、スコープ外で不用意に再利用される恐れもないため、こちらの記述方法の方が保守性は良いとしている教科書もある。なお、逆に変数の宣言が関数の途中でバラバラに乱立すると保守性が悪いとする教科書もあるので一概には言えない話である。

for (int i = 0; i < 100; i++)
{
    for (int j = 0; j < 100; j++)
    {
        same_function(i, j);
    }
}


関連項目[編集]

参考文献[編集]