鱼C论坛

 找回密码
 立即注册
查看: 2901|回复: 3

while循环结构语句,疑问~

[复制链接]
发表于 2011-11-24 12:49:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
var
  i: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;这个前面。否则结果不对。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-24 17:33:54 | 显示全部楼层
你按照你程序的思路动手计算一遍就知道为什么呢!!{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-6 10:52:51 | 显示全部楼层
小解一下:
第一顺序:
s:=s+i;    //i 已有初始值
i:=i+1;   // 把i+1赋值给i

第二顺序:
i:=i+1;   // 把i+1赋值给i
s:=s+i;    //这里的 i 已经是 i+1的值啦  (如果在正常循环中,这样就丢失了一次循环(特别要求除外))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-6 00:50:14 | 显示全部楼层
换了位置结果当然不对啊,你想,如果你一小时能走5里路,50里路你需要走10个小时。然后你每走一个小时就加上一小时,结果为正常。你如果还没走就先加了5公里,你是不是只要走9次了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 05:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表