【问题标题】:Should for loops only be used as iteration loops? [closed]应该只将 for 循环用作迭代循环吗? [关闭]
【发布时间】:2011-10-14 19:53:10
【问题描述】:

编辑:我知道如何使用 for 循环/我可以用它们做什么。我正在向社区询问您对 for 循环的某些用法何时是好/坏的看法。

只是一个一般的编程问题:

for循环应该只用于迭代吗?

请注意,这里的迭代是一个定义非常模糊的术语——基本上我的意思是传统的for (int i = 0; i < limit; i++) 及其变体。

例如:

您应该/不应该将 for 循环用于计数器:

for (; keepGoing(); count++)while (keepGoing) { count++ }

某些语言也可能有某些警告或不同的使用模式。不用太特别,我从 C++/C#/Java 使用模式看问题。

需要考虑的事项:

  • 易于编码。
  • 代码的可读性。
  • 导致错误的可能性(即,在某些 for 循环使用或 while 循环使用中更常见的非一个错误更常见)。

【问题讨论】:

  • @jfairbank 这是你的作业吗?
  • 不,不是作业。请参阅我的编辑。我知道如何使用 for 循环/while 循环——我只是想知道社区在什么时候应该使用某些“类型”的 for 循环而不是它们的 while 循环计数器部分。

标签: for-loop while-loop iteration


【解决方案1】:

您也可以对计数器使用循环,它们也是某种迭代。

但是你应该避免这样的循环:

for(;;){
}

while(true){
}

还要尽量避免循环中的 continue 和 break 语句,因为它们会使代码难以阅读和调试。

【讨论】:

    【解决方案2】:

    使用 for 循环的唯一大罪是修改计数器变量。这会造成非常难以维护的代码。

    除此之外,for 循环不保证循环将执行一次。只有doloop 可以保证这一点。如果这不是问题,那么它就会成为个人品味和风格的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      相关资源
      最近更新 更多