主题:read在循环中为什么读不出外面的数据?
carefreeNumOne
[专家分:40] 发布于 2005-10-12 11:17:00
dim arr$(12)
for i = 1 to 12
read arr$(i)
print arr$ (i);
next i
data a,b,c,d,e
data f,g,h,i,j
出错:OUT OF DATA
请指点出错原因,
还有data里的数据的调用原理是什么啊??
请多指教
回复列表 (共7个回复)
沙发
moz [专家分:37620] 发布于 2005-10-12 11:29:00
你的data只有10个数据
却用read读了12次数据
数据不够,也就出错了
每一次read都会按顺序读取一个data里面的元素
data可以放在主模块的任意位置
板凳
carefreeNumOne [专家分:40] 发布于 2005-10-12 12:14:00
晕,这个都给搞错了,
谢谢你的回帖,
这个明白了,估计我的程序
不是在读数据上出现的问题
我在仔细查查!
3 楼
carefreeNumOne [专家分:40] 发布于 2005-10-12 13:35:00
我的问题搞清楚了,
在数据跟循环匹配的情况下,是没问题!
但当循环超出数组范围的话,就算我在把循环数改正确
同样通不过编译!
必须从新把文件调入一次才能通过编译!
我没学过编译原理,我想问一下
这个数组如果越界后就不能在使用了吗??
4 楼
moz [专家分:37620] 发布于 2005-10-12 13:44:00
我不明白这一句“必须从新把文件调入一次才能通过编译!”的意思。
和C语言不同,在QB里,数组是不允许越界的。
5 楼
carefreeNumOne [专家分:40] 发布于 2005-10-12 14:43:00
等于说i=1 to 10
变成 i = 1 to 11
当read a$(11)的时候出错
在把11改回10以后
还是出错.
必须关掉QB.EXE
在重新进入才能通过编译
这种情况算是怎么回事呢?
我的QQ22805715
如果可以的请加我,可能会给你添很多麻烦的
[em8]
6 楼
moz [专家分:37620] 发布于 2005-10-12 14:58:00
在出错的时候
程序运行到for的这一句停下来了,
而这个时候data都已经读完了
这个时候你怎么改,read都会出错的。
在这个时候,改完后应该按 <Shift> + <F5> 重新(从头开始)运行
用不着退出程序重新进入的。
7 楼
carefreeNumOne [专家分:40] 发布于 2005-10-12 15:16:00
也就是说当出错的时候
假设 dim a$(10)
在read a$(11)中数组越界,
程序在这一行设置了一个断点
你在怎么改循环次数
他还是read a$(11)吧
按<F5>只能从断点处运行吗?
我来回复