回 帖 发 新 帖 刷新版面

主题:for next 多重循环为什么不能交叉???

如题

回复列表 (共11个回复)

沙发

因为循环需要终止
如:
FOR I = 1 TO 10
  FOR J = 1 TO 10
S = S + 1
  NEXT I 
NEXT J 
上题就是个错误语句,因为二层循环没有结束,一层循环就已经终止了
可以说FOR-NEXT语句是一对,中间不能再插入单独的FOR语句或单独的NEXT语句
不知道自己说的对不对,还请MOZ老师,Matodied指教 

板凳

3 楼

为什么?
因为如果交叉了,比如:
n=10
FOR i=1 TO n:FOR j=1 TO n
    PRINT i*j
NEXT i,j
那么在i=1,j=1的时候,执行NEXT i时,不是j=j+1,而是i=i+1,这样循环j一共只执行了n次,而正常应该执行n*n次的,这样就混乱了。

4 楼

不对

5 楼

怎么不对了?
明明应该这样执行:

i  j
1  1
1  2
......
1  10
2  1
2  2
......
2  10
......
10 1
10 2
......
10 10 

但是如果交叉就变成这样的了:
i  j
1  1
2  1
3  1
......
10 1
所以不能交叉.

6 楼

你不应该假设不可能发生的事情.
脱衣服不应该先脱里面的.

7 楼

QB的循环只能从里到外,一层一层,不能相互交叉或跨倚
应该是这样的

8 楼

对各位老师的回复表示感谢!!

9 楼

交叉了就乱套了, 逻辑上说不走.

10 楼

交叉会死循环

我来回复

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