我继承了一些包含IF语句的代码,如果可能的话我想减少它。
从本质上讲,它是一个简单的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) */
答案 0 :(得分:1)
从逻辑的角度来看,你做不到。没有重复的变量(Z = ¬C
没有多大帮助),并且由于嵌套,普通形式将比这更长。这似乎很短。
从编程的角度来看,如果绝对最大速度不如可读性重要(或者你有一个像样的编译器),我会以一种使决策结构更清晰的方式对它们进行重新分组(其中哪些与a(程序执行)逻辑观点?),即使重复检查某些变量(假设这些不是函数调用)。我还将其拆分为几个单独的定义,并仅将结果合并到if
。