哪种更好的做法:更少的IF语句和更多的数据,或者相反?

时间:2018-07-16 06:26:19

标签: vba ms-access

我正在编写一个程序,该程序根据文档所属的组来切换报告信息的某些部分。因此,有很多if语句。很多。

现在我一直在想哪种方法更好:

If documentGroup = "34" Then
    fillThisInfo
End If
"Here is text that's part of every document."
If documentGroup = "34" And documentID = "C321" Then
    fillThisInfoInToo
End If

If documentGroup = "34" Then
    fillThisInfo + "Here is text that's part of every document."
    If documentID = "C321" Then
    fillThisInfoInToo
    End If
End If

我想知道,这在性能方面是更糟糕的:在代码中重复并因此添加更多数据,还是使用多个if语句并尝试“回收”尽可能多的数据?

1 个答案:

答案 0 :(得分:1)

忘记性能:这些事情发生得如此之快,以至于您必须迭代一百万次才能看到差异。访问Office对象的速度很慢,但是内存中的内容通常不会立即执行。

您应该关心的是代码的可读性和可维护性。遵循具有多个If或if中是否包含if的代码逻辑是否更容易?
请注意不要在程序中两次输入相同的代码。例如,在第二版中,您可能需要else写出“这里是每个文档的一部分。” 信息,如果您不在34情况下。 -尽可能避免这种情况。

我强烈建议您摆脱这些魔术数字(例如"34")。用有意义的名称定义一个常量:Const MySpecialDocumentGroup = "34"。并且:缩进您的代码!在第二个示例中,您在If中有一个If-使用另一个选项卡使对fillThisInfoInToo的呼叫缩进。