回 帖 发 新 帖 刷新版面

主题:[讨论]J为什么为3?

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个回复)

沙发

我执行为 2 0 啊。。。

板凳

i=1时
   内层循环完成后J=3
然后,I=2,跳转到AA
打印出I=2,J=3

3 楼

IF I=J AND J=2 THEN GOTO BB
这一行根本没有执行。

4 楼

for i =1 to 20
next i
应该i=21,j=3一个道理

5 楼

好像不对吧:
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。

我来回复

您尚未登录,请登录后再回复。点此登录或注册