読みやすさのために最も重要なことは、明白な名前でなければなりません。
iとjは最も明白ではありませんが、単純なケースでは問題ない場合があります。この(確かにややよく考えられていない)例を考えてみましょう。
static void Main(string[] args)
{
for(int i = 0; i < 100; i++)
for (int j = 0; j < 100; j++)
for (int k = 0; k < 100; k++)
Console.WriteLine("" + i + "-" + j + "-" + k);
}
vs
static void Main(string[] args)
{
for(int survey = 0; survey < 100; survey++)
for (int question = 0; question < 100; question++)
for (int option = 0; option < 100; option++)
Console.WriteLine("" + survey + "-" + question + "-" + option);
}
どちらを読むのが理にかなっているのかは非常に簡単にわかります。しかし、私たちがそれに取り組んでいる間、命名の問題をさらに排除しながら、それをさらに読みやすくするのはどうですか。
static void Main(string[] args)
{
for(int survey = 0; survey < 100; survey++)
PrintSurvey(survey);
}
private static void PrintSurvey(int survey)
{
for (int question = 0; question < 100; question++)
PrintQuestion(survey, question);
}
private static void PrintQuestion(int survey, int question)
{
for (int option = 0; option < 100; option++)
PrintOption(survey, question, option);
}
private static void PrintOption(int survey, int question, int option)
{
Console.WriteLine("" + survey + "-" + question + "-" + option);
}
たぶん、この単純なループではやり過ぎ/冗長で、一意の名前を見つけるだけでなく、ネストされたループの名前付けの問題に対処できる方法がたくさんあることを強調したかっただけです。