【问题标题】:While or For loop which one suits for which condition [duplicate]While 或 For 循环哪个适合哪个条件 [重复]
【发布时间】:2013-10-18 10:54:41
【问题描述】:

有些迭代代码是这样写的

while(true)                           for(int i = 0 ; i<=4;++i)
                                        {
{  
    System.out.println(i);               System.out.println(i);
   if(i==4)                                
     break;
                                          }
}

两者都具有相同的逻辑,将其作为假设。那么在代码中使用哪一个会更快、更好,使用其中任何一个意味着什么??

【问题讨论】:

  • 您的 while 循环将陷入无限循环。
  • sry 我忘了在while循环中提到++i
  • @DeepSaxena 然后更新您的帖子,以便新访问者受益
  • 最好在代码中使用与您正在编程的编码约定相对应的代码。

标签: java c++ c


【解决方案1】:

第一个是无限循环 :)(取决于循环之前的 i)第二个(几乎)执行您所期望的。去拿一本关于你的编程语言的好手册,它会解释其中的区别。

在另一个层面上:循环优化更适合 for 循环 (AFAIK),因此“聪明”的编译器可能会为“for”循环生成更好的代码。 http://en.wikipedia.org/wiki/Loop_optimization

【讨论】:

  • sry 我忘了在while循环中提到++i
  • 我的评论仍然有效:去拿一本手册 :)
  • 去拿一本手册如果你想回答然后完整回答,这样未来的用户就会受益。在评论部分只给出部分答案会更好
【解决方案2】:

它们完全不同,但如果它们的行为相同,请不要在这种情况下使用break;

第二个bucle更清楚,当你必须考虑性能时,你不必在干净代码的撤退中这样做。

第二个 bucle 是自我记录的,而第一个你需要添加一个添加中断的理由才能理解。

【讨论】:

    【解决方案3】:

    要结束左侧的 while 循环,您必须添加 i

    编辑:假设循环开始时i 小于 4

    【讨论】:

      【解决方案4】:

      为此,请使用for,因为您需要i 的值。对维修有更多的了解。反正编译器会优化两个代码,运行时可能是一样的。

      【讨论】:

        【解决方案5】:

        考虑到您的 while 不是无限循环,就性能而言没有区别。但是,我个人更喜欢 for 循环,因为它更干净。考虑一下:

        int i = 0;
        while (true) {
          doSomething(i++);
          if (i == 4)
            break;
        }
        

        看起来更干净

        for (int i = 0; i <= 4; i++)
          doSomething(i);
        

        【讨论】:

          【解决方案6】:

          每当我提前知道迭代次数时,我都会使用for

          【讨论】:

            【解决方案7】:

            如果您知道要执行某些操作的次数,则必须使用 for 循环,否则请使用 while 循环。 例如:

            • 如果你有一些数组或数组列表,那么假设你想添加所有 那么你应该使用 for 循环,因为你知道它的大小 arraylist by size() 函数并通过length 知道数组的大小 属性。
            • 如果您有结果集并且想要从中检索所有行,那么 你应该使用 while 循环,因为你不知道有多少元素 结果集对象。

            【讨论】:

              【解决方案8】:

              忽略你的问题的错字,假设你想知道当loops 都在做同样的事情时我选择了哪一个。

              答案是你可以选择任何一个。

              但如果您知道要运行loop 的次数,最好使用for loop,因为您可以在initialization 期间设置condition。如果您想扩展iteration,将来也很容易更改它。

              如果您不确定需要多少iteration,您可以选择while。在你的情况下,我会选择for loop

              注意:答案是基于意见的。

              【讨论】:

                猜你喜欢
                • 2011-06-13
                • 1970-01-01
                • 2012-06-23
                • 2016-06-03
                • 1970-01-01
                • 2011-01-15
                • 2014-01-02
                • 2019-04-01
                • 2014-10-14
                相关资源
                最近更新 更多