求助关于DELPHI学习中一个的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:16:44
求助关于DELPHI学习中一个的问题

在DELPHI中的WHILE语句中 他的特点是先判断 后执行,循环次数最少为0 。 为避免出现死循环 ,循环体内至少有一条能改变条件表达式值的语句 。 请问改变条件表达式值具体是怎样的改法 能否给个程序或代码例子 。谢谢了。 这是1到10的求和程序 。
下面是我学习中的一个小程序 麻烦大家帮忙看一下
project project2-4;
{$ APPTYPE CONSOLE}
{$ R* . res}
VAR
I , S :Integer;
begin
i : =1;
s : =0;
write('1+2+3+....+')
while i <=10 do
begin
s : = s+1;
i : = i+1; //改变循环条件 ( 就是这一句 我不知道 为什摸 要加这句 他是什摸意思 麻烦告诉我)
end;
write( i - 1,' =' ); //循环结束时I等于11(还有这句 我也不知道为什摸)
writeln(s);
readln;
end

程序写错了:
s:=s+1;
i:=i+1;
应改为
s:=s+i;
i:=i+1;

开始时i的值是1;
i<=10 循环
执行s:=s+1; 后 i 的值加到了s中,s=1;
执行i:=i+1; 后 i 的值加1,值为2;
i<=10 再次循环:
执行s:=s+1; 后 i 的值加到了s中,s=3=1+2;
执行i:=i+1; 后 i 的值加1,值为3;
i<=10 再次循环:
执行s:=s+1; 后 i 的值加到了s中,s=6=1+2+3;
执行i:=i+1; 后 i 的值加1,值为4;
……
……
i<=10 再次循环:
执行s:=s+1; 后 i 的值加到了s中,s=45=1+2+4+5+6+7+8+9;
执行i:=i+1; 后 i 的值加1,值为10;
i<=10 再次循环:
执行s:=s+1; 后 i 的值加到了s中,s=55=1+2+4+5+6+7+8+9+10;
执行i:=i+1; 后 i 的值加1,值为11;
i>10 不符合条件,不再次循环

就是累加
一开始学的时候我也不明 我想你肯定是不明白i一开始是1执行 i : = i+1 后就不明白了吧?每次执行这个
i中存储的都是上一次的值
你看程序

while i <=10 do
begin
s : = s+i;
i : = i+1;
end;
第一次执行循环的时候s=s+i (初始条件i=1; s=0)
s就等于s=0+1 ,s变成1;
后执行 i : = i+1 这样 i=1+1 i变成2
第二次执行的时候 i是2 s是1

s=s+i s=1+2 s变成3
后执行 i : = i+1 执行前i是上次的2 执行后 i变成3



明白了吗?就是累加的意思 我先学的c