0

プログラミングの授業に入門したことのあるプログラマーは誰でも、デモガンの法則を暗記しなければならなかったと思います。

わからない場合は要点を

!(A && B) = !A || !B
!(A || B) = !A && !B

暗記する必要がある場合、プログラミングの状況に適用できると思いました。しかし、私はそれをまったく使用する必要はありませんでした。

プログラミングでそれを使用する必要がある理由はありますか? プログラムが速くなりますか、それとも条件が読みやすくなりますか?

4

1 に答える 1

2

コードを読みやすく保つことは大きな理由であり、あなたのコードが重要であることに同意した後、あなたのコードに取り組む人は誰であれ、私は確信しています。また、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'; }

于 2016-04-19T19:18:01.093 に答える