だから私は次のようなものを持っています
bSuccess = true;
bSuccess = bSuccess && statement1();
bSuccess = bSuccess && statement2();
bSuccess = bSuccess && statement3();
...
これを書くためのより良いまたはより慣用的な方法はありますか?
だから私は次のようなものを持っています
bSuccess = true;
bSuccess = bSuccess && statement1();
bSuccess = bSuccess && statement2();
bSuccess = bSuccess && statement3();
...
これを書くためのより良いまたはより慣用的な方法はありますか?
あなたはそれをすべて一緒に連鎖させることができます:
bSuccess = statement1() && statement2() && statement3();
これは「慣用的」ですが、このタイプのコードが明確であるかどうかは完全には明らかではありません。各関数呼び出しの副作用に依存しているため、少なくともこれらは十分に文書化する必要があります。
成功した場合、3つのステートメントすべてがtrueを返すと仮定すると、次を使用します。
statement1() && statement2() && statement3();
それはあなたのステートメントがどれほど複雑かによります。十分に単純なもの、あなたはただすることができます:
bSuccess = statement1() && statement2() && statement3();
ただし、より複雑なものについては、次のことを行う傾向があります。
fOk = 1; // true
if (fOk) {
LotsOfStuffNotSettingError();
fOk = SomethingSettingError();
}
if (fOk) {
LotsMoreStuffNotSettingError();
fOk = (ThisNeedsToReturnOne() == 1);
}
等々。
このように、ブロックは任意に複雑にすることができ、バイナリ論理演算子で処理できる単純なステートメントに限定されません。
各ブロックにはまったく設定されていないものがたくさんあるかもしれませんfOk
が、各ブロックは基本的に1つのステートメント設定で終了する必要がありますfOk
。