プログラミングの授業に入門したことのあるプログラマーは誰でも、デモガンの法則を暗記しなければならなかったと思います。
わからない場合は要点を
!(A && B) = !A || !B
!(A || B) = !A && !B
暗記する必要がある場合、プログラミングの状況に適用できると思いました。しかし、私はそれをまったく使用する必要はありませんでした。
プログラミングでそれを使用する必要がある理由はありますか? プログラムが速くなりますか、それとも条件が読みやすくなりますか?
プログラミングの授業に入門したことのあるプログラマーは誰でも、デモガンの法則を暗記しなければならなかったと思います。
わからない場合は要点を
!(A && B) = !A || !B
!(A || B) = !A && !B
暗記する必要がある場合、プログラミングの状況に適用できると思いました。しかし、私はそれをまったく使用する必要はありませんでした。
プログラミングでそれを使用する必要がある理由はありますか? プログラムが速くなりますか、それとも条件が読みやすくなりますか?
コードを読みやすく保つことは大きな理由であり、あなたのコードが重要であることに同意した後、あなたのコードに取り組む人は誰であれ、私は確信しています。また、2 つではなく 1 つの値を反転 (!) するだけで、CPU サイクルを 1 つか 2 つ節約できます。
もう 1 つの理由は、短絡をバイパスすることです。多くの言語は!A || !B
、!B が true かどうかは問題ではないため、!A が true かどうかの評価を停止します。!A は、OR が真になるのに十分です。
A と B が変数ではなく関数であり、両方を実行したい場合、問題が発生します。
if( !save_record() || !save_another_record() ) {
echo 'Something bad happened';
}
デモガンの法則により、OR を AND に置き換えることができます。AND の両側を評価して、真であることを確認する必要があります。
if( !( save_record() && save_another_record() ) ) {
echo 'Something bad happened';
}