请高手过来看看(20分)

  • 主题发起人 主题发起人 kenmen
  • 开始时间 开始时间
K

kenmen

Unregistered / Unconfirmed
GUEST, unregistred user!
1)
var
cout,m:integer;
begin
cout:=10;
m:=1;
while cout<>0 do
begin
if m<>11 then
begin
for m:=1 to 10 do
if Myarr[m].str=(datetostr(now)+timetostr(now)) then
begin
showmessage('Time Now!');
cout:=cout-1;
end;
end
else
for m:=10 downto 1 do
if Myarr[m].str=(datetostr(now)+timetostr(now)) then
begin
showmessage('Tine Now!');
cout:=cout-1;
end;
end;


2)
for m:=1 to 10 do
if Myarr[m].str=(datetostr(now)+timetostr(now)) then
begin
myarr[m].str:='';//下次不再使用
showmessage('Time Now!');
end;
请问高手,这两个程序实现的结果有啥不同?
请说详细点,,我是一只菜鸟啊!

 
1)既然已经指定m:=1那么if...then...else...句只会执行else部分了.
多了cout计数也没看到有什么用.
2)"下次不再使用"看不到下次在哪里.
 
各位能说说程序2)的实现过程吗?
for语句执行十次就完了,那若比较时有一个变量与系统时间不同,
是否就以后再不对它进行比较了?
我最想知的是程序2)的实现过程,请高手们指点。。。。
谢谢了!!!!
 
我不是高手,刚刚睡醒就上DFW来逛逛,结果不小心闯了进来,哦,我刷了牙了:)

当然不是,不管if的结果如何,还是要执行十次循环的。
你想跳出来得调用break,exit之类才行.
 
我的意思是:
2)句是比较到所有变量都与系统时间相等才退出,还是只比较十次后,
不理变量是否与系统时间相等,都退出呢?
 
不管比的结果如何,十次后退出
 
我知是要比较十次,但是要比较到所有变量都与系统时间相等才退出(都也是十次,
只是因为要等所有的时间都与系统时间相等时才退出,所用的时间会长),
还是只比较十次后,不理变量是否与系统时间相等,都退出呢?我就是不大清楚它的运
行过程,高手们指教。。。。
 
各位能说说吗?
 
按你的说法,第一个程序可以实现你的要求,但我不懂(m<>11)这个判断的作用。因为按你给出的程序,m是不会等于11的。
  第二个程序,不符合你的要求,其循环将在第10轮后无条件终止。
 
算啦,看来都很难有结论了。。。。。
 
多人接受答案了。
 
后退
顶部