プログラミングを開始して以来、条件文では!=
または!condition
でないことがあります。多分私の脳は複数の否定を打ち倒すために英語で事前調整されているからかもしれません。しかし、私は条件付き声明で真であるかどうかを評価することに関して、一般的な開発コミュニティが受け入れている慣行があるのだろうかと疑問に思っています。または、むしろ、私が時々それを見る方法:偽でないと評価する。条件文で等しくないための共通コード規約
多分!=
が完全にやむを得ないことができない例外がありますか?例については
:
これは非常に簡単で、些細なことかもしれないが、これは
string myStringVar = "dogs";
if (myStringVar != "dogs") //In my mind, "False this is not true"
{
//code
}
else if (myStringVar != cats) //In my mind, "True this is false"
{
//code
}
またはこの望ましい
if (myStringVar == "dogs")
{
//"True"
}
else if (myStringVar == "cats")
{
//"False"
}
であるが好ましい次に
bool MyBoolMethod()
{
return false;
}
if (!MyBoolMethod()) // True this method does not return true
{
//code
}
があります
これ非常に簡単で簡単な例です。わかりやすい、保守可能なコードを書く方法を知りたいだけです。他の誰かがこのような条件文を読んでいくのはやや難しい時があるのですか?
'(myStringVar!=" dogs ")' myStringVar'は '' dogs "'と等しくないので、読みました。つまり、条件付きで問題にすべきではないということです。 –
それは私の問題です。デバッグやコードの書き出し中に、変数を割り当てることが想像されます。もっと複雑な状況では、私は 'not equal'と' equal'を混同しているようです。 –
最初のif-else-if構文は間違いなく貧弱です。そのロジックは具体的なことを確認する必要があります。論理の2つの枝は両方の論理的構成に入るシナリオを捕らえることができる。その場合の平等をチェックすることは間違いなく良いでしょう。それはほとんどあなたが何をしたいかによって決まります。あなたは間違いなく二重否定を避けるべきです。 trueで始まる 'notFound'と呼ばれるブール変数を持ち、問題のものを見つけるとfalseに設定します。偽を開始し、一度見つかったらtrueに設定される 'found'変数を持つ方が良いでしょう。 – ManoDestra