2

私が単一のfor loop機能を持っているとしましょう。選択するのが最善でしょうかreturn、それともbreakメカニック関連の好みがない場合ですか? それともまったく同じでしょうか?

void function()
{
  for (int i; i<foo; i++)
     {
         if (something)
            // return? break?
     }
  // nothing else after this
}
4

3 に答える 3

6

break を使用するとループが終了しますが、return を使用すると実際にメソッドが完了します。したがって、単純にループを停止することが目的の場合は、break を使用できます。ただし、メソッドを終了させたい場合は、return を使用してください。return と breakの特殊なケースに関する追加コメントについては、この投稿を参照してください: ruby​​ での break と return, how do you use them?

********編集******** このシナリオでは、関数の for ループの下にさらにコードがない限り、まったく同じように機能します。その場合は、break を使用してそのコードをヒットします。

于 2013-08-24T20:09:56.527 に答える
3

生成されたコードに関しては、このシナリオではまったく同じであると期待できます。

ただし、return はbreakとは意味が異なります。Return は関数を終了することを意味し、break はループを終了するだけです。結果は今と同じかもしれませんが、アルゴリズムが変更されたり、後処理が必要になったりすると、結果が変わる可能性があります。

このシナリオで何がより適切かは、実際のコードがなければ何とも言えません。

于 2013-08-24T20:11:15.233 に答える
1

breakこの状況では a を使用することをお勧めします。要件は時間の経過とともに変化する可能性があり、ループの後に別のコードを追加しなければならない日が来るかもしれません。次に、 return特に初期のループ終了がまれでテストが難しい条件である場合は、初期のバグが発生するのを待っている可能性があります。

于 2013-08-24T20:14:47.517 に答える