在某些情况下去除部分条件



有没有办法删除语句中的部分条件IF这取决于我是否需要它。下一个代码是示例,因为在我的代码中,我的语言中有很多用户定义的函数和过程:

IF A THEN
Q := TQuery.Create(Application);
IF B AND C AND D AND E AND Q.FieldByName('Example').AsInteger = 1 then
BEGIN
...
END

因此,假设在创建TQuery后,我已经将一些数据导入其中(我没有在这里编写那部分代码)。如果没有创建Q(因为条件 A 不满足),有没有办法在第二个IF语句中删除带有Q的部分,还是我必须在没有Q部分的情况下再次扭动整个IF语句?

我在想使用类似CASE的东西来检查是否创建了Q,如果没有,只是跳过句子的那部分。如果可能,我怎么能跳过它?

快速而肮脏的方式

IF B AND C AND D AND E AND (NOT A OR Q.FieldByName('Example').AsInteger = 1) then

请注意,尽量保持 if 条件更简单。

EvaluationRequested := A AND C ...
QueryNeedsAval := NOT A OR ... 
if EvaluationRequested AND QueryNeedsAval then 
begin
...
end;

相关内容

最新更新