1

我继承了一些代码,其中包含我想尽可能减少的 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) */
4

1 回答 1

1

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

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

于 2011-07-07T05:12:44.090 回答