当前位置:  开发笔记 > 编程语言 > 正文

继续认为有害吗?

如何解决《继续认为有害吗?》经验,为你挑选了6个好方法。

开发人员是否应该避免在C#中使用continue或在其他语言中使用其等效来强制循环的下一次迭代?支持或反对的论据是否与关于Goto的论点重叠?



1> Rob Walker..:

我认为应该继续使用更多!

我经常遇到如下代码:

for (...)
{
   if (!cond1)
   {
      if (!cond2)
      {
          ... highly indented lines ...
      }
   }
}

代替

for (...)
{
   if (cond1 || cond2)
   {
      continue;
   }

   ...
}

用它来使代码更具可读性!


@Dennis - 重点是将有趣的代码保存在尽可能远离屏幕左侧的"执行代码"块中.我也发现在大多数情况下更容易阅读条件而没有否定.
为什么不做`if(!cond1 &&!cond2){execute code}`而不是`if(cond1 || cond2)继续`?

2> dF...:

continue任何比,更有害说,break

如果有的话,在我遇到/使用它的大多数情况下,我发现它使代码更清晰,更少意大利面条.


@Fox:这是造成对象所有权/生命周期混乱的人的错.不是继续或休息.

3> Patman..:

无论是否继续,您都可以编写好的代码,无论是否继续,您都可以编写错误的代码.

关于goto的参数可能有一些重叠,但就我而言,使用continue相当于使用break语句(在循环中)或从方法体中的任何地方返回语句 - 如果使用正确,它可以简化代码(不太可能包含错误,更容易维护).



4> Jorge Córdob..:

没有有害的关键字.只有它们的有害用途.

Goto本身并无害处,也不会继续.他们需要谨慎使用,就是这样.



5> Torlack..:

如果继续导致可读性问题,那么您可能还有其他问题.例如,for循环中的大量代码.如果你必须编写大的for循环,我会尝试坚持使用继续接近for循环的顶部.否则,很容易错过深埋在for循环中间的继续.



6> Jack Bolding..:

我喜欢在循环开始时使用Continue来处理简单的if条件。

对我来说,由于没有多余的嵌套,它使代码更具可读性,并且您可以看到我已明确处理了这些情况。

这与我使用goto的原因相同吗?也许。我有时会使用它们来提高可读性并停止代码的嵌套,但是通常我会更多地使用它们来进行清理/错误处理。

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有