1. ホーム
  2. for-loop

[解決済み] forループでbreakを使うのはバッドプラクティスですか?[クローズド]

2022-06-21 18:36:41

質問

を使うのは悪い習慣でしょうか? break ステートメント の中に for ループ ?

例えば、配列の中の値を探しているとします。forループの中で比較し、値が見つかったら break; でforループを抜けます。

これは悪い習慣なのでしょうか?私は別の方法を見たことがあります:変数 vFound を定義し、値が見つかったらそれを true に設定して vFound の中で for 文の条件として使用することができます。しかし、このためだけに新しい変数を作成する必要があるのでしょうか?

私は、通常のCまたはC++のforループのコンテキストで尋ねています。

P.S. MISRAコーディングガイドライン はbreakを使わないようにアドバイスしています。

どのように解決するのですか?

多くの回答が寄せられていますが、まだ言及されているのを見たことがありません。

を使用することに関連する危険性のほとんどは、以下のとおりです。 break または continue などのループは、整理整頓された読みやすいループを書けば否定されます。ループの本体が画面の数分の長さに及び、複数のサブブロックが入れ子になっている場合、そう、ブレークの後に実行されないコードがあることを簡単に忘れてしまうかもしれません。しかし、ループが短く、要点を押さえていれば、break 文の目的は明らかでしょう。

ループが大きくなりすぎた場合、代わりにループ内で1つまたは複数のよく名付けられた関数呼び出しを使用します。そうしない本当の理由は、処理のボトルネックのためだけです。