我想知道在计算机科学中是否有一个最佳实践,是否有利于代码行数或指令数,当2向不同方向拉?
示例1:下面的代码行数较少,但是每个g都会评估if,而它们不依赖于g。
For g = 0 To UBound(myRegions)
If Cells(2, j) = "" And Cells(myRowToBeAllocated, 4 + j) <> 0 Then
Cells(2, g) = Worksheet("Test").Cells(k, q)
ElseIf Cells(myRowToBeAllocated, 4 + j) <> 0 Then
Cells(2, g) = Worksheet("Test").Cells(2 * k, q / 2)
End If
Next g
示例2:下面的代码有更多的行,但是没有为每个g评估ifs,因此下面导致计算执行的指令更少。
If Cells(2, j) = "" And Cells(myRowToBeAllocated, 4 + j) <> 0 Then
For g = 0 To UBound(myRegions)
Cells(2, g) = Worksheet("Test").Cells(k, q)
Next g
ElseIf Cells(myRowToBeAllocated, 4 + j) <> 0 Then
For g = 0 To UBound(myRegions)
Cells(2, g) = Worksheet("Test").Cells(2 * k, q / 2)
Next g
End If
问题是:关于哪一个最好,是否有最好的做法?
答案 0 :(得分:0)
如果我理解你的话,你就会把计算速度与可读性放在一起。在这种情况下,实际上没有最佳实践,因为它取决于具体情况:对于必须尽可能高效运行的小程序,我会选择选项2,因为它对速度至关重要。对于其他一切(对于现代的,快速的计算机而言大多是这种情况),我不会在速度优化方面投入精力,直到它确实成为一个问题。更重要的是代码是可读和可维护的。尝试理解一些快速运行的丑陋代码所花费的工作时间比一些硬件升级要昂贵得多,以使代码执行得更快。