loops - 循环迭代器命名约定

标签 loops iterator naming-conventions

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

4年前关闭。




Improve this question




我们知道,不知何故,我们使用 ij循环中的变量非常常见。如果需要双人for循环,很可能会使用以下内容:

for (int i = 0; i < n; i++)
{
    for (int j = 0; j < m; j++)
    {
        // do some stuff...
    }
}

但是,如果我需要第三个 for在这些循环中循环,我对第三个迭代器没有任何命名约定。我,可能使用以下变量:r , k , ii , jj等等...

第三个(等等……)循环的迭代器有命名约定吗?

最佳答案

可读性最重要的应该是明显的名字 .
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);
}
对比
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);
}
对于这个简单的循环来说,可能有点矫枉过正/冗长,只是想说明有更多的方法可以处理嵌套循环的命名问题,而不仅仅是找到唯一的名称。

关于loops - 循环迭代器命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11914581/

相关文章:

programming-languages - 用连字符分隔的大小写的名称是什么?

java - For 循环星号和加号(矩形形式)

javascript - 我可以使用数组迭代器执行与 for 循环相同的功能吗?

arrays - 为二维数组编写迭代器

c++ - 使用 STL Map 查找对中第一个元素的最低 key 对

java - 当名称与参数变量相同时调用实例变量

java - 向后寻求处理无效的 MP3 header ?

java - 在 Android Room 中我可以循环遍历所有记录吗

python - 如何从 CSV 模块使用 Python 迭代器

python - 如何按照 PEP8 规则缩写维度?