有一段代码:(Istrue是一个自定义函数)
Do While istrue(1)
  Do While istrue(2)
    Do While istrue(3)
      ............xx.................
    Loop
  Loop
Loop
这个是3重的do,现在我要写一个类似的n重结构,改怎么办呢?

解决方案 »

  1.   

    PS n是一个变量````不知道大家能不能明白我的意思````
      

  2.   

    用for
    for i=0 to n
       Do While istrue(i)
            ..............
       loop
    next i
      

  3.   

    不对耶```执行结果不一样啊````
    原来的代码是:
    istrue(3)(true)->istrue(3)(true)->.....->istrue(3)(false)->istrue(2)(true)->istrue(3)(true)->istrue(3)(true)->istrue(3)(true)......->istrue(3)(false)->->istrue(2)(true)->istrue(3)(true)->istrue(3)(true)->istrue(3)(true)......->istrue(3)(false)->....................................你的代码是:
    istrue(3)(true)->istrue(3)(true)->.....->istrue(3)(false)->istrue(2)(true)->istrue(2)(true)->istrue(2)(true)->istrue(2)(true)......->istrue(2)(false)->->istrue(1)(true)->istrue(1)(true)->istrue(1)(true)->istrue(1)(true)......->istrue(1)(false)->exit
      

  4.   

    可能我没说清楚吧```istrue(n)执行后会影响istrue(非n)的结果,要重验证有点象多重for嵌套的代码```
      

  5.   

    tztz520(午夜逛街)的当然不行
    拆开看就知道了   Do While istrue(i)
            ..............
       loop
       Do While istrue(i)
            ..............
       loop
       Do While istrue(i)
            ..............
       loop
      

  6.   

    用递归自己做另一个子程序,比如
    public sub aa(a as integer)
    Do While istrue(a)
      if a=n then
        ............xx.................
      else
        call aa(a+1)
      end if  
    Loop调用:aa(1)