2016-04-19 9 views
-1

Я думаю, что любой программист, вступивший в класс программирования, должен был запомнить закон ДеМоргана.Когда я должен применять закон о деморганах в программировании?

В случае, если вы не знаете, что это такое, вот суть

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

Я был в предположении, что, если я должен был запомнить, я бы найти это применимо в ситуации программирования. Но мне не пришлось использовать его вообще.

Есть ли причина, по которой я должен использовать ее в программировании? Это ускоряет работу программы или облегчает ее чтение?

ответ

0

Сохранение прочитанного кода является большой причиной, и я уверен, что кто бы ни работал над вашим кодом после того, как вы согласитесь, это важный вопрос. И вы сохраните цикл процессора или два, если вы только инвертируете (!) Одно значение вместо двух.

Другая причина заключается в обходе короткого замыкания. Когда многие языки видят !A || !B, они перестают оценивать, если! А истинно, потому что не имеет значения, верно ли! B или нет. ! А достаточно, чтобы значение ИЛИ было истинным.

Если A и B являются функциями вместо переменных, и вы хотите, как выполнить, вы собираетесь иметь проблему:

if(!save_record() || !save_another_record()) { echo 'Something bad happened'; }

законы де Моргана позволяют заменить, что OR с AND. С обеих сторон и должны быть оценены, чтобы убедиться, что это правда:

if(!(save_record() && save_another_record())) { echo 'Something bad happened'; }

+0

Ох. в обход оценки с коротким циклом. Что ж. Я этого не видел. Это довольно круто. Благодарю. –