开始结束是否会影响条件语句的性能?

时间:2010-06-30 11:01:19

标签: performance delphi if-statement syntax

我正在使用Delphi。如果我们以不同的方式编写if condition,它会对性能产生任何影响吗?例如:

if (condition) then
   someVar := someVal
else
   someVar := someOtherVal;  

或者我们可以写:

if (condition) then begin
   someVar := someVal;
end else begin
   someVar := someOtherVal;
end;  

我更喜欢第二种选择,因为它看起来比第一种更好。

4 个答案:

答案 0 :(得分:24)

不,性能没有差别,创建的代码将完全相同。

可能比第二个选项看起来更好的一个方面是维护更好。如果你需要在else块中添加另一个语句,你不会忘记添加begin和end,这会将语句置于if之外并始终执行。

答案 1 :(得分:3)

这不会对性能产生影响。

beginend告诉编译器代码块的开始和结束位置,但不需要在那里进行计算。

答案 2 :(得分:2)

开始和结束不要像其他人已经说过的那样放慢你的代码速度。我正在写另一个答案,鼓励你更明确地使用开始和结束,只要你能使用它们。

使用Begin和End自由是好的,不要担心它们会减慢你的速度(因为他们没有)。

如果你走另一条路,尽可能地在任何地方开始和结束,你会遇到不同类型的麻烦。

这件事发生在我身上。将行插入到不存在begin和end语句的位置时,可能会遇到麻烦。然后,你最终想知道你做了什么破坏了你的代码。即使在不需要的地方,无处不在的开始端是许多德尔福编码员的标准操作程序。

答案 3 :(得分:1)

if-elseif-else唯一要注意的是在边缘情况之前将常见情况保留在代码中,以便评估最少的条件。