2017-12-22 4 views
-2

forループに複数の条件を設定しても問題ありませんか?例えば複数の条件を設定する場合、Forループに制限がありますか?

bool b = true; 
for (int i = 0; i < 100 && b; i++) 
    b = changeB(i); //Imagine this does something with b 

だから私は、それがためにループ内で条件のようなものを置くために正しいではありませんと言われました。具体的な理由は何ですか?それともうまくいったのですか?

+9

これは完全に有効です。あなたはどこから悪い習慣とみなされているという印象を得ましたか? – Fureeish

+0

*なぜ、複数の条件をforループに入れるのはOKではないと思われますか? - なぜ、forループで条件をチェックしなかった場合に、あなたが投稿したコードを変更するよう提案し、ループはまったく同じように動作しますか?それが何であっても、投稿されたコードよりも「良く」見えますか? – PaulMcKenzie

+2

誰かが最初にコードを見た場合、コードの論理的な意図が明らかになると思いますか?もしそうなら、あなたのコードはおそらく大丈夫ですし、心配する必要はありません:)。 – George

答えて

1

forループに複数の条件を入れてもOKではないのはなぜですか?

問題ありません。

こういう条件をforループに入れるのは間違いだと言われました。具体的な理由は何ですか?

私は、その意見の具体的な理由を知っているかもしれないと考えています。

条件式のシーケンスが前のものよりも複雑なものであると想像していた場合、条件があまりにも複雑になりすぎることはありません。どの時点で、表現が複雑すぎてループ状態で読み込みができなくなったかは、非常に主観的です。


興味深いことに、MISRAガイドライン - 主観愚かであり、限定されているそのうちのいくつかは - 明示的に「その他」のループ制御変数を使用できます。

+0

はい、それはおそらく可読性のためにあります。答えはありがたいです – Manugs

0

大丈夫ですが、変数名を明確にすることが最も重要です。例えば、Bは説明的な名前ではありません。

+0

はい、はい、それは自分自身を説明するばかげた例でした – Manugs

関連する問題