我在一些代码中有三个不同的CASE
s,每个代码都围绕一个For...Next
循环的例程有微小的变化。问题是,效率和速度有什么不同,这取决于我如何嵌套它们?
换句话说,是:
Select Case sPosition
Case Is = "First"
For j = 17 to 65
[Do stuff]
Next j
Case Is = "Middle"
For j = 17 to 65
[Do stuff]
Next j
Case Is = "Last"
For j = 17 to 65
[Do stuff]
Next j
End Select
......效率高于或低于:
For j = 17 to 65
Select Case sPosition
Case Is = "First"
[Do stuff]
Case Is = "Middle"
[Do stuff]
Case Is = "Last"
[Do stuff]
End Select
Next j
答案 0 :(得分:3)
CodeReview比SO更多的问题,但无论如何,它取决于你打算用循环做什么。在第一种情况下,您有一个条件,然后根据条件的结果循环遍历数据,对所有数据执行相同的操作。在第二种情况下,每次循环运行时都要重新检查条件。如果您认为循环运行时会发生不同的事情(选择不同的案例),那么您需要使用第二个变体,但如果检查的条件没有变化,那么第一个选项会更快,因为条件只是检查一次循环
答案 1 :(得分:1)
我认为第一个变体更有效,因为选择案例只能工作一次,而第二个变体选择案例适用于cicle的每一步(49次)