【发布时间】:2017-04-01 18:19:55
【问题描述】:
这是一个抽象的问题,没有真正的代码(也可能不是最好的伪代码),所以希望它足够有意义,不会被审核致死。但这是一个一遍又一遍地向我提出的问题,因为我正在从事的项目是一个非常线性的,取决于先前的条件和过程。所以……
给定一系列逻辑任务,每个任务都依赖于前一个任务,我尝试了两种方式来构造代码。
一个依赖于proceed 变量,像这样
Proceed = True
If Task1 Not Successful Then
Proceed = False
End If
If Proceed Then
If Task2 Not Successful Then
Proceed = False
End If
End If
等等
但是我在许多地方读到了 cmets,大意是这种运行 Proceed 变量的方法并不理想。所以,或者我可以有
If Task1 Succcesful Then
If Task2 Successful
Then Etc
Else
Error Condition
End If
Else
Error Condition
End If
在我看来,前者更具可读性,逻辑非常明显。而且,当序列中的任务数量变大(超过 3 个或真的)时,嵌套的 If 真的变得笨拙。 所以,我的问题是,不使用第一种方法的原因是什么? 是否有更好的方法来构建第二个示例中的逻辑以提高可读性? 或者是否有第三种方法可以解决前者的问题(无论它们是什么),以及后者的可读性问题? 还是第一种方法实际上很好,当一个确实有一系列顺序相关的任务时?
【问题讨论】:
标签: logic