看下这段程序运行结果是多少

来源:百度知道 编辑:UC知道 时间:2024/06/28 20:14:22
dim a(-1 to 5) as boolean
dim flag as boolean
flag=false
dim i as integer
dim j as integer
do until flag=true
for i =-1 to 5
j=j+1
if a(i)=false then
a(i)=true
exit for
end if
if i=5 then
flag =true
end if
next
loop
print j

请详细解释 j=??
可不可以详细解释下。光是答案有什么用

j=35
原因是这样的:
j记录的是for循环的次数。

a(i)开始都为“假”,程序设定,遇到第一个“假”改为“真”,跳出for循环,然后从头再来。直道最后一个a(i)为“真”才把flag改为“真”,后出了do循环,输出循环次数的。
这里考察的是对循环的理解。

所以
i=-1时结束for的时候,for循环1次, j=1
i=0时结束for的时候,for循环2次, j=3
i=1时结束for的时候,for循环3次, j=6
i=2时结束for的时候,for循环4次, j=10
i=3时结束for的时候,for循环5次, j=15
i=4时结束for的时候,for循环6次, j=21
i=5时结束for的时候,for循环7次, j=28
这时候虽然a(5)已经为“真”,但因为跳出了for,而没有执行flag的改变。所以do循环还要再来一次
这次,for循环仍为7次,j=28
到if a(i)=false then 不成立,所以不跳出for,到if i=5 then 成立,改变flag,结束do循环。
输出j为35。

j=35

j=35
变量j的含义是统计运行本程序累计循环的次数。
次数 j值
1 : 1
2 : 1+2
3 : 1+2+3
4 : 1+2+3+4
5 : 1+2+3+4+5
--------------------------------
合计 35(次)