ifステートメントのロジックはかなり複雑です。私は現在使用しています:
if(numerical_evaluation) {
if ((!boolOne && boolTwo) || !boolThree){
//do stuff
}
}
ここで、boolOne、boolTwo、およびboolThreeは論理演算です(おそらくx < y
、または'myObject-> getBool'など)。
3番目のステートメント||
内に条件をネストせずにこれを簡単に読み取れるようにするためのより良い方法はわかりません。if
私が苦労している理由は、オペレーターが3番目のステートメントが正当or
であると思われるようにするためです。if
1つのオプションはこれを行うことです。
または、私は次のようなことをすることができます
if(x <= y) {
bool boolFour = false;
if ((!boolOne && boolTwo))
boolFour = true;
if (boolFour || !boolThree){
//do stuff
}
}
たぶん、すべてまたは組み合わせを単一の戻り値に検証しようとする別の関数を作成することさえできますか?
または、これが不要な方法でコードを再構築することもできます。これには、かなりの時間がかかる場合があります。
私の質問:複雑な質問をフォーマットするための最良の方法は何ですか?これには、単なるバリエーションif
よりも複雑な評価が含まれますか?ステートメントをステートメントと組み合わせて1行にif (!A && B && C)
含めると、物事がどうしようもなく読めなくなるようです(特に、boolOne、boolTwoなどの複雑な評価がある場合) 。-複数の条件を持つifステートメントをフォーマットするための最良の方法-と同じ原則がここにも当てはまりますか、それともさまざまな論理演算子を使用するときに根本的な違いがありますか?||
&&