可读性最重要的应该是明显名称。
i和j不是最明显的,但对于简单情况可能没问题。考虑这个(诚然有点想不通)的例子;
static void Main(string[] args)
{
for(int i = 0; k < 100; k++)
for (int j = 0; k < 100; k++)
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);
}
可能矫枉过正/冗长对于这个简单的循环,只是想有更多的可以应对的嵌套循环不仅仅是找到唯一名称的命名问题的方式点。
我真诚地认为,如果你有3个嵌套循环这样,你应该想到“重构“而不是如何命名变量。 – 2012-08-11 12:14:56
逻辑会倾向于使用下一个字母(k),这就是说 - @JoachimIsaksson有一个好点 – MimiEAM 2012-08-11 12:17:52