我们知道,不知何故,我们使用i
and j
循环中的变量非常常见。如果一个人需要双for
循环,很可能会使用如下所示的内容:
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
// do some stuff...
}
}
但是,如果我需要第三个for
在这些循环中,我没有第三个迭代器的任何命名约定。我可能会使用以下变量:r
, k
, ii
, jj
etc...
第三个(等等...)循环的迭代器是否有命名约定?
对于可读性来说最重要的应该是明显的名字.
i and 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);
}
对于这个简单的循环来说,可能有点过分/冗长,只是想指出,有更多的方法可以处理嵌套循环的命名问题,而不仅仅是查找唯一的名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)