在Delphi中,考虑以下内容:
有人可能认为在
更新
尝试了几个简单的循环后,我怀疑循环结束后
var
i: integer;
begin
for i := 0 to N do
begin
{ Code }
end;
有人可能认为在
for
循环之后,i = N
,但是Delphi编译器能保证这一点吗?在一个Delphi if
循环中,在循环内部可以假设循环变量等于它的最后一个值吗?更新
尝试了几个简单的循环后,我怀疑循环结束后
i
实际上等于循环内i
的最后一个值加一...但是这样可靠吗?
for
循环后 N 仍在作用域内吗?我建议先检查一下,因为我怀疑它可能已经不在作用域内了。 - LBushkinN
会在作用域内,因为显然在循环之前它就已经在作用域内了(否则代码就不会编译通过)。在Delphi中,作用域不会在函数运行过程中改变;它从函数的开始开始,直到结束。 - Rob Kennedy