我正在使用Delphi。如果我们以不同的方式编写if condition
,它会对性能产生任何影响吗?例如:
if (condition) then
someVar := someVal
else
someVar := someOtherVal;
或者我们可以写:
if (condition) then begin
someVar := someVal;
end else begin
someVar := someOtherVal;
end;
我更喜欢第二种选择,因为它看起来比第一种更好。
答案 0 :(得分:24)
不,性能没有差别,创建的代码将完全相同。
可能比第二个选项看起来更好的一个方面是维护更好。如果你需要在else块中添加另一个语句,你不会忘记添加begin和end,这会将语句置于if之外并始终执行。
答案 1 :(得分:3)
这不会对性能产生影响。
begin
和end
告诉编译器代码块的开始和结束位置,但不需要在那里进行计算。
答案 2 :(得分:2)
开始和结束不要像其他人已经说过的那样放慢你的代码速度。我正在写另一个答案,鼓励你更明确地使用开始和结束,只要你能使用它们。
使用Begin和End自由是好的,不要担心它们会减慢你的速度(因为他们没有)。
如果你走另一条路,尽可能地在任何地方开始和结束,你会遇到不同类型的麻烦。
这件事发生在我身上。将行插入到不存在begin和end语句的位置时,可能会遇到麻烦。然后,你最终想知道你做了什么破坏了你的代码。即使在不需要的地方,无处不在的开始端是许多德尔福编码员的标准操作程序。
答案 3 :(得分:1)
if-elseif-else唯一要注意的是在边缘情况之前将常见情况保留在代码中,以便评估最少的条件。