【译】
W1037 FOR 循环变量 Result 可能在循环后失去定义
【问题原因】
Result 被用在循环的初始值或结束值时会引发此警告:
function Test: Integer; var I: Integer; begin Result:=100; for I := 0 to Result do begin ... end; end;
就个人来看,用做循环的结束值是没有问题的,但下面的用法就有问题了:
function Test: Integer; begin for Result := 0 to 10 do begin ... end; end;
这种情况下,Result的返回值将是11,而不是10,这可能不符合一般人的预期,因此官方给予了一个警告。但第一种情况,我觉得没必要。
【解决方法】
尽量不在 For 循环中使用 Result 做为控制变量,除非你自己知道确实怎么用。象上面的第二种情况,换种写法即可。
【示例】
无
【参考】