主题:[讨论]J为什么为3?
zcj09090909
[专家分:0] 发布于 2009-10-09 20:45:00
FOR I=1 TO 2
IF I=2 THEN GOTO AA
FOR J=1 TO 2
IF I=J AND J=2 THEN GOTO BB
NEXT I
NEXT J
AA;
PRINT I
BB;
PRINT J
END
以上程序执行时J为什么为3?
回复列表 (共5个回复)
沙发
xiaojiajia [专家分:0] 发布于 2009-10-12 14:38:00
我执行为 2 0 啊。。。
板凳
天天学习 [专家分:4570] 发布于 2009-10-15 15:49:00
i=1时
内层循环完成后J=3
然后,I=2,跳转到AA
打印出I=2,J=3
3 楼
cxf12345678 [专家分:0] 发布于 2009-10-24 15:59:00
IF I=J AND J=2 THEN GOTO BB
这一行根本没有执行。
4 楼
593170024 [专家分:500] 发布于 2009-10-28 13:29:00
for i =1 to 20
next i
应该i=21,j=3一个道理
5 楼
zihao1231 [专家分:150] 发布于 2009-10-29 12:42:00
好像不对吧:
FOR I=1 TO 2
IF I=2 THEN GOTO AA
FOR J=1 TO 2
IF I=J AND J=2 THEN GOTO BB
NEXT I}好像
NEXT J}反了
AA;
PRINT I
BB;
PRINT J
END
改正:
FOR I=1 TO 2
IF I=2 THEN GOTO AA
FOR J=1 TO 2
IF I=J AND J=2 THEN GOTO BB
NEXT J
NEXT I
AA;
PRINT I
BB;
PRINT J
END
FOR 循环的运行原理是这样的,比如:FOR I = 1 TO 9
第一次循环,I比较有没有超过9,没有就循环,有就退出,这里没有超过,循环。
第二次I+1再比较。
……
第九次I+1为9,没有超过9,循环。
第十次I+1为10,超过9,推出。这时I由于刚才加了1所以为10
上题I循环1次后J循环2次,但是由于比较,J实际存放的数值为3
I循环第二次后,执行条件满足,转到AA。这是I循环2次还没有结束,所以值为2。J在I循环一次的时候数值为3,之后J的值没有改变,所以输出时J为3。
我来回复