C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 47 を表示中)
■25784 / )  Re[8]: 再帰によるスタックオーバフローエラー
□投稿者/ Jitta (515回)-(2008/09/25(Thu) 21:44:11)
Jitta さんの Web サイト
No25715 (Lily さん) に返信
Private Sub ClaimReflexive(ByVal rowCnt As Integer)
    ' ************************************************************************
    '   機能:  再帰処理
    ' ************************************************************************
    ' >>>>>結局、単純なループで解決できる
    While (rowCnt >= 0)
        Dim ClaimArray() As String = Split(PubTreeTbl.Rows(rowCnt).Item("List"), ",")
        ' >>>>>何度も計算させない
        Dim pos As Integer = PubAryPos(rowCnt)
        ' >>>>>同じ else を2回書かない
        ' >>>>>PubArrayPos(rowCnt) が 0 の可能性は?
        If ClaimArray.Length >=  pos AndAlso ClaimArray(pos - 1) <> "" Then
            ' クレームNo取得
            PubSubClaimNo = Integer.Parse(ClaimArray(pos - 1))
            PubClaimBody += "-" & PubSubClaimNo.ToString.PadLeft(MaxFigure)
        Else
            ' ツリーの値が取れなかった場合
            If ClaimBeforeReflexive(rowCnt) = False Then
                Exit Sub
            End If
        End If
        rowCnt = PubSubClaimNo - 1
    End While
End Sub

返信 編集キー/


管理者用

- Child Tree -