一代宗师主题曲:vfp do while 如何防止出现死循环

来源:百度文库 编辑:高考问答 时间:2024/04/28 02:44:57
SET TALK OFF
CLEAR
USE 考试表
do while !eof()
if allt(考试表.正确答案)==allt(考试表.你选答案)
repl 总分 with 总分+2
skip
else
skip
endi
enddo

sele sum(总分) from 考试表 into array yzj
thisform.text2.value=yzj(1)
if thisform.text2.value>=6
messagebox("恭喜您通过了",32+4,"考试结果")
else
messagebox("对不起您没通过",32+4,"考试结果")
endi
这段代码能否出现死循环

程序没问题,肯定不会出现死循环。
不过为什么你不试试呢?

死循环是不会,不过你这个程序看着有些别扭

我建议设一个变量
让此变量在循环一次时自动加上一次,当你设置的这个变量达到一定数值(你自己设置)的时候,通过代码让它跳出死循环就可以了
比如
public a,b
a=0
b=1
do while b>0 &&这是一个死循环
b=b+1
a=a+1
if a>=100 &&当死循环运行100次的时候退出程序
quit
else
skip
endif
enddo

do while !eof() 不会出现死循环,因为有eof()函数限制,表肯定有末记录.
不过你写的代码,可读性差些.
只打开一个表,字段变量前不必有表的引用.
这个程序你可尝试用locate for....
if found()
repl .....
continue
endif
或用scan for.....endscan,vf专用的循环查询语句.