Логическая логика: Как я могу упростить это утверждение IF? - PullRequest
1 голос
/ 07 июля 2011

Я унаследовал некоторый код, который содержит оператор IF, который я хотел бы сократить, если это возможно.
По сути, это простой ЕСЛИ (A или B) ТО.Но это становится сложно, потому что A и B являются обобщениями других выражений.

Вопрос: Как я могу выразить это, если это возможно, в более простых терминах?

Вот оригинальное выражение IF ....
Для ясности я заменил скобки и скобки на круглые скобки,

IF ( { W & X & Y & Z } or  { C & D & [ ( F & G) or (H & G) or (F & J) ] } )
/* Comment: For what it's worth: (Z = not c) */

1 Ответ

1 голос
/ 07 июля 2011

С логической точки зрения вы не можете. Здесь нет повторяющихся переменных (Z = ¬C не очень помогает) и из-за вложенности нормальные формы будут длиннее, чем эта. Похоже, это так коротко.

С точки зрения программирования, если абсолютная максимальная скорость менее важна, чем удобочитаемость (или у вас есть достойный компилятор), я бы перегруппировал их таким образом, чтобы сделать структуру принятия решений более ясной (какие из них связаны с логическая точка зрения (выполнения программы?), даже если это дублирует проверки для определенных переменных (при условии, что это не вызовы функций). Я также разделил бы это на несколько отдельных определений и объединил бы результаты только внутри if.

...