Логическая логика: Как я могу упростить это утверждение IF?

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

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

Вот оригинальное заявление ЕСЛИ....
Для ясности я заменил скобки и скобки на круглые скобки.

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 ответ

Решение

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

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

Другие вопросы по тегам