Coding style 代码行数与指令数

Coding style 代码行数与指令数,coding-style,standards,Coding Style,Standards,我想知道在计算机科学中是否有一个最佳实践,即当两个指令向不同方向拉动时,是否支持代码行数或指令数 示例1:下面的代码行数较少,但if是针对每个g进行评估的,而它们不依赖于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)

我想知道在计算机科学中是否有一个最佳实践,即当两个指令向不同方向拉动时,是否支持代码行数或指令数

示例1:下面的代码行数较少,但if是针对每个g进行评估的,而它们不依赖于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
g=0到UBound(myRegions)的

如果单元格(2,j)=”和单元格(myRowToBeAllocated,4+j)为0,则
单元格(2,g)=工作表(“测试”)。单元格(k,q)
ElseIf细胞(myRowToBeAllocated,4+j)0然后
单元格(2,g)=工作表(“测试”)。单元格(2*k,q/2)
如果结束
下一个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
如果单元格(2,j)=“”,单元格(myRowToBeAllocated,4+j)为0,则
对于g=0到UBound(myRegions)
单元格(2,g)=工作表(“测试”)。单元格(k,q)
下一个g
ElseIf细胞(myRowToBeAllocated,4+j)0然后
对于g=0到UBound(myRegions)
单元格(2,g)=工作表(“测试”)。单元格(2*k,q/2)
下一个g
如果结束

问题是:关于哪一个是最好的,有没有最佳实践?

如果我没弄错的话,你把计算速度和可读性放在了一起。在这种情况下,实际上没有最佳实践,因为这取决于具体情况:对于一个必须尽可能高效运行的小程序,我会选择选项2,因为它对速度至关重要。对于其他的一切(现代、快速的计算机就是如此),我不会把精力放在速度优化上,直到它真的成为一个问题。更重要的是代码可读性和可维护性。试图理解一些运行速度很快的难看代码所需的工作时间要比升级硬件使代码执行速度更快所需的时间要昂贵得多。

谢谢您的回答。在我的公司,我们用笔记本电脑工作。2013年的CPU标准是i7-3635QM,但现在的标准是速度较慢的i7-5500U。当我开始编写程序时,我假设CPU速度将每18个月翻一番,花3分钟完成的任务会更快。但事实并非如此,所以我一直在努力平衡速度和代码可读性。