sanye000001 发表于 2012-10-29 23:30:02

回复 15# MicroBlue


    你真是个天才。
$y1=GUICtrlCreateInput($x1,110,350,80,30)

_CallSelf($y1)Func _CallSelf($n,$m)


      MsgBox(0,"",$n)

      If $n = 0 Then
                Exit
      Else
               for $a=0 to $m step 1
                _CallSelf($n-1,$m)
               $n-=1
      EndIf

EndFunc这样行不行?

MicroBlue 发表于 2012-10-29 23:34:14

回复 16# sanye000001


    行不行,你试试啊。看看是不是你要的效果。

sanye000001 发表于 2012-10-29 23:34:54

回复 15# MicroBlue


    你真是个天才。
$y1=GUICtrlCreateInput($x1,110,350,80,30)

_CallSelf($y1)Func _CallSelf($n,$m)


      MsgBox(0,"",$n)

      If $n = 0 Then
                Exit
      Else
               for $a=0 to $m step 1
               next
                               _CallSelf($n-1,$m)
                         EndIf

EndFunc应该不行,因为for……next这个变成一层,我需要的是层层内嵌,即for……for……for…………next……next……next

seeyou 发表于 2012-10-30 00:02:21




Global $k = 0
dosomething(6,5)
ConsoleWrite($k&@CRLF)

Func dosomething($n, $deep)
        For $i = 0 to $n
                If(1 == $deep)then
                        $k += 1
                Else
                        dosomething($n, $deep - 1)
                EndIf
        Next
EndFunc



$k = 0
For $i = 0 To 6
        For $i2 = 0 To 6
        For $i3 = 0 To 6
        For $i4 = 0 To 6
        For $i5 = 0 To 6
        $k += 1
Next
Next
Next
Next
Next

ConsoleWrite($k&@CRLF)

netegg 发表于 2012-10-30 01:04:09

回复 18# sanye000001
递归本来就可以达到多重循环的效果,lz如果没试过,不要妄下结论

annybaby 发表于 2012-10-30 02:00:03

本帖最后由 annybaby 于 2012-10-30 02:10 编辑

回复 19# seeyou

抱歉,回复错误楼层了~~

annybaby 发表于 2012-10-30 02:10:16

回复 18# sanye000001


自身调用自身啊,递归来的,fibonacci,N!等问题的笨办法都会用到递归,你后面的多重for循环可以用下面的代码来代替,其实类似的变通一下就可以
Local $k = 0
_for(5)
Func _for($n)
For $i = 1 To 7^$n
      $k += 1
Next
EndFunc
ConsoleWrite($k&@CRLF)

guowenfu 发表于 2012-10-31 13:36:57

好像是递归意思吧。

dingzz3 发表于 2020-12-12 22:58:30

MicroBlue 发表于 2012-10-29 23:13


递归啊,牛人,膜拜
页: 1 [2]
查看完整版本: 如何让N个for语句用简短的语句描述