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