【问题标题】:Boolean Logic: How can I simplify this IF statement?布尔逻辑:如何简化此 IF 语句?
【发布时间】:2011-09-30 03:39:02
【问题描述】:

我继承了一些代码,其中包含我希望尽可能减少的 IF 语句。
它本质上是一个简单的 IF (A or B) THEN。但它变得棘手,因为 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) */

【问题讨论】:

    标签: if-statement boolean-logic demorgans-law


    【解决方案1】:

    从逻辑的角度来看,你不能。没有重复的变量(Z = ¬C 没有多大帮助)并且由于嵌套的正常形式会比这更长。这似乎很短。

    从编程的角度来看,如果绝对最大速度不如可读性重要(或者你有一个不错的编译器),我会以一种使决策结构更清晰的方式重新组合它们(其中哪些与(程序执行)逻辑观点?),即使这重复检查某些变量(假设这些不是函数调用)。我还将其拆分为几个单独的定义,并仅将结果合并到 if 中。

    【讨论】:

    • .@nobody:感谢您的关注。幸运的是,这些都不是函数调用,速度也不是优先事项。我只是添加了一些简单的英语 cmets 来解释逻辑,然后就不用管了。
    猜你喜欢
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2020-12-23
    • 2016-05-19
    • 1970-01-01
    相关资源
    最近更新 更多