主题:请帮我解释一下这个程序(读程题)
Mato完整版
[专家分:1270] 发布于 2008-05-03 16:11:00
CLS
t=3
GOSUB a1
PRINT t
END
a1:
DO
GOSUB a2
a2:
t=t-1
IF t<=0 THEN RETURN
LOOP
这个程序的输出结果为什么是-3????
回复列表 (共3个回复)
沙发
moz [专家分:37620] 发布于 2008-05-04 02:09:00
我不知道我这样子解释你是否能听得明白
1 CLS
2 t=3
3 GOSUB a1
4 PRINT t
5 END
a1:
7 DO
8 GOSUB a2
a2:
10 t=t-1
11 IF t<=0 THEN RETURN
12 LOOP
说明一下运行顺序: 执行后t的值
1-2-3 第一个跳转断点 t=3
-a1-7-8 第二个跳转断点 t=3
-a2-10 t=t-1 t=2
-11-12-7-8 第三个跳转断点 t=2
-a2-10 t=t-1 t=1
-11-12-7-8 第四个跳转断点 t=1
-a2-10 t=t-1 t=0
-11 if t<=0条件成立,Return上一个调用断点(第四个跳转断点)
-8 第四个Gosub跳转执行完毕,执行到下一行
-a2-10 t=t-1 t=-1
-11 if t<=0条件成立,Return上一个调用断点(第三个跳转断点)
-8 第三个Gosub跳转执行完毕,执行到下一行
-a2-10 t=t-1 t=-2
-11 if t<=0条件成立,Return上一个调用断点(第二个跳转断点)
-8 第二个Gosub跳转执行完毕,执行到下一行
-a2-10 t=t-1 t=-3
-11 if t<=0条件成立,Return上一个调用断点(第一个跳转断点)
-3 第一个Gosub跳转执行完毕,执行到下一行
-4 Print t t=-3
-5 程序结束
Mato,我教你一个办法,
1. 打开QBX,输入你的代码.
2. 按顺序按键盘: <Alt> <D> <Enter> <t> <Enter> <F8> <F8> <F8> <F8> <F8> ......
相信你比我聪明.你一定会领会的.
板凳
wzc1996 [专家分:1680] 发布于 2008-05-04 12:36:00
[color=008000]Mato,我教你一个办法,
1. 打开QBX,输入你的代码.
2. 按顺序按键盘: <Alt> <D> <Enter> <t> <Enter> <F8> <F8> <F8> <F8> <F8> [color=008000]......[/color]相信你比我聪明.你一定会领会的[/color].
[color=800000]这是检验程序.
前面MOZ已经说了,和我要说的大致相同.[/color]
File Edit View Search Run Debug Calls Utility Options
打开[color=800000]DEBUG[/color],选种 [color=800000]ADD WATCH [/color]输入检验的变量.
[color=FF0000]按F8[/color]或用F9选种全文,按F5
3 楼
554243834 [专家分:0] 发布于 2008-05-08 12:57:00
[em13]......这题好简单,是0
我来回复