循环迭代器命名约定[关闭]

2024-03-27

我们知道,不知何故,我们使用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(使用前将#替换为@)

循环迭代器命名约定[关闭] 的相关文章

  • C/C++ stdlib 命名约定的名称?

    我想知道 C C 标准库中使用的命名约定是否有一个名称 或者至少有一个可以查找规则的备忘单 例如 push back underscore used setstate but not used here string npos when t
  • 产生独特的价值

    我想创建一个C程序生成 0 到 999999 之间的数字 请记住生成的数字不应包含任何重复的数字 例如 123 是一个可接受的值 但不是 121 as the 1 被重复 我已经找到了其他程序代码来检查整数是否有重复的数字 检查整数是否有重
  • 在 Javascript 中维护数组顺序

    我是 JavaScript 新手 在使用数组时遇到问题 我希望数组按照我显式编写的方式排序 而不是 JavaScript 决定它想要的方式 如果我们有一个数组 var array 0 zero 4 four 2 two 当我选择在控制台中显
  • 非数字输入导致死循环

    由于某种原因 如果用户输入了错误的数据类型 例如 j 或 循环将停止要求输入并继续显示 Enter an integer gt 一遍又一遍 如何让程序处理错误的输入 为什么输入非数字值会导致如此奇怪的行为 define SENTINEL 0
  • 按广度优先顺序列出目录所有内容导致效率低下

    我编写了一个 Haskell 模块来按广度优先顺序列出目录的所有内容 下面是源代码 module DirElements dirElem where import System Directory getDirectoryContents
  • 如何测试具有多个输入调用的循环?

    我正在尝试测试一个依赖多个用户输入来返回某个值的函数 我已经在这里寻找了多个答案 但没有一个能够解决我的问题 我看到了参数化 模拟和猴子补丁的东西 但没有任何帮助 我认为很大程度上是因为我没有清楚地理解正在做的事情背后的概念 并且我无法适应
  • 按顺序范围循环映射

    我正在寻找一种确定的方法来范围Go map为了 Go 规范 https golang org ref spec For statements陈述如下 映射的迭代顺序未指定 并且不保证从一次迭代到下一次迭代的顺序相同 如果在迭代过程中删除尚未
  • 在 C++ 中将惰性生成器实现为forward_iterator

    MyGenerator 表示 可能 有限的整数序列 计算成本很高 所以我不想预先生成它们并将它们放入容器中 struct MyGenerator bool HasNext int Next 要打印全部 MyGenerator generat
  • GridSearchCV:每次函数完成循环时打印一些表达式

    假设你有一些功能function在Python中通过循环工作 例如 它可以是一个计算某个数学表达式的函数 例如x 2 对于数组中的所有元素 例如 1 2 100 显然这是一个玩具示例 是否可以编写这样的代码 每次function经过一个循环
  • 点分隔的字符串资源名称有什么用?

    我使用 Snake style 来命名字符串资源 在某人的代码中 我发现了另一种带有点的符号 我无法找到关于这个主题的任何单词
  • 如何检查 char 数组是否有空单元格以便我可以在其中打印 0?

    Code public void placeO int xpos int ypos for int i 0 i lt 3 i for int j 0 j lt 3 j The line below does not work what ca
  • 从tensorflow 2.0 beta中的tf.data.Dataset检索下一个元素

    在tensorflow 2 0 beta之前 要从tf data Dataset中检索第一个元素 我们可以使用迭代器 如下所示 usr bin python import tensorflow as tf train dataset tf
  • 函数式编程是否需要新的命名约定?

    我最近开始使用 Haskell 学习函数式编程 并在 Haskell 官方 wiki 上发现了这篇文章 如何阅读哈斯克尔 http www haskell org haskellwiki How to read Haskell What t
  • 为什么 LISP 中符号名称中的连字符是约定俗成的?

    这个推荐的理由是什么 为什么不与使用下划线的其他编程语言保持一致 我认为 LISP 使用连字符有两个原因 历史 和 因为你可以 History LISP 是一种古老的语言 在早期输入下划线可能会很困难 例如 我用于 LISP 的第一个终端是
  • 如何对 int[] 数组求和[重复]

    这个问题在这里已经有答案了 给定一个数组A of 10 ints 初始化一个名为的局部变量sum并使用循环查找数组中所有数字的总和A 这是我提交的答案 sum 0 while A lt 10 sum sum A 我在这个问题上没有得到任何分
  • for 循环中列表项未更改

    当以下代码没有达到我预期的效果时 我感到震惊 lines list this is line 1 n this is line 2 n this is line 3 n for line in lines list line line st
  • 循环遍历多维数组

    我有一个与此类似的 JSON 文件 Pages Name Home Page index php admin Name Admin Page admin index php Template admin MobileTemplate adm
  • JSF 托管 Bean 命名约定

    这些天我曾经使用 JSF 但有一个 约定 我不确定是否应该使用 在使用托管 bean 时 人们通常将其命名为XxxxxManagedBean其中前缀可以是与您的业务相关的任何名称 你也这样工作过吗 特别是 尽管搜索很容易 但我不太喜欢 您正
  • 从向量中删除向量::end

    当我使用时它工作正常吗 什么也不做 vector
  • 为什么 .each 在我的 Rails 视图中完成后会重复数组? [复制]

    这个问题在这里已经有答案了 在我的 Rails 视图页面中 我有以下循环 它应该循环遍历我的 tag list 数组并打印每个标签 由于某种原因 它在打印每个单独的标签后会重复该数组 例如 这个数组有两个元素 ruby python 每个方

随机推荐