打破循环

Bv2*_*202 3 language-agnostic for-loop control-structure

假设你有这个代码:

function doSomething($array)
{
  for($i = 0; $i < sizeof($array); $i++)
  {
    if ($array[$i] == "ok")
      return true;
  }

  return false;
}
Run Code Online (Sandbox Code Playgroud)

请注意,我不是在谈论特定于PHP(这适用于所有语言)或此特定示例.这是关于打破for循环(在这种情况下,返回true;停止循环).

根据我的老师的说法,这是非常非常糟糕的,也是一种没有做过的练习.

从一个循环中脱离真的是一个没做过的练习?

谢谢

Ale*_*ler 6

从循环中断或返回是完全正常的.

你的老师可能提到的是经典的一个函数应该只有一个返回点扩展到循环.这背后的基本原理是,您的控制流程应始终尽可能简单易懂.你不必不加思索地遵守这个规则并不严格.

要在不使用break和重写的情况下重写样本return:

function doSomething($array)
{
  $ret = false;
  for($i = 0; $i < sizeof($array) && !$ret; $i++)
  {
    if ($array[$i] == "ok")
      $ret = true;
  }

  return $ret;
}
Run Code Online (Sandbox Code Playgroud)

阅读和维护是痛苦的.你的更简洁.

  • 那是垃圾.编写易于阅读和维护的代码.保持控制流程尽可能简单.如果你已经完成了你为*开始循环的工作,那么`break`就可以了.如果你完成了整个函数(包括清理),那么从它返回`.而已. (4认同)