while循环结构语句,疑问~
vari:Integer=0;
j:Integer=0;
s:integer=0;
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
begin
i:=StrToInt(edt1.text);
j:=StrToInt(edt2.text);
while(i<=j) do
begin
s:=s+i;
i:=i+1;
end;
btn1.Caption:=IntToStr(s);
end;
这个 while循环结构语句详细运行过程是如何的,为什么一定要把s:=s +i;放到i:=i+1;这个前面。否则结果不对。
你按照你程序的思路动手计算一遍就知道为什么呢!!{:1_1:} 小解一下:
第一顺序:
s:=s+i; //i 已有初始值
i:=i+1; // 把i+1赋值给i
第二顺序:
i:=i+1; // 把i+1赋值给i
s:=s+i; //这里的 i 已经是 i+1的值啦(如果在正常循环中,这样就丢失了一次循环(特别要求除外))
换了位置结果当然不对啊,你想,如果你一小时能走5里路,50里路你需要走10个小时。然后你每走一个小时就加上一小时,结果为正常。你如果还没走就先加了5公里,你是不是只要走9次了?
页:
[1]