嵌套层数

如果某个业务功能复杂,多层循环判断嵌套是避免不了的,但可以通过函数提取来提高代码的可读性和可修改性,降低程序的复杂性。

原则:

l 嵌套不要超过3

l 函数提取的时候,不要为了提取而提取,要把提取出来的函数从业务角度看,函数实现的是一个业务活动、一个业务步骤,或者是一个业务规则都可以。

例如:

不好例子:

    For i = LBound(mystrCompTargetTypeID) To UBound(mystrCompTargetTypeID)

   

        '查找合规性指标编号

        mystrCompTargetNo = findCompTargetNo(mystrCompTargetTypeID(i))

       

        For j = LBound(mystrCompTargetNo) To UBound(mystrCompTargetNo)

                      '初始化合规性指标

                      Call initCompTarget(strCompTargetNo, myCompTarget)

           

                       For mydtmAnalyseDate = dtmStartDate To dtmEndDate

                               

                           For k = LBound(intAccountID) To UBound(intAccountID)

                               '根据合规性指标编号,计算合规性指标值

                               Set myTempColGotoutData = calCompTargetWithAccount(strCompTargetNo, intAccountID(k), mydtmAnalyseDate, myCompTarget)

                                        

                               For Each myGotoutData In myTempColGotoutData

                                   colGotoutData.add myGotoutData

                               Next myGotoutData

                           Next k

                       Next mydtmAnalyseDate

        Next j

    Next i

 

 重构后的例子:

    For i = LBound(mystrCompTargetTypeID) To UBound(mystrCompTargetTypeID)

   

        '查找合规性指标编号

        mystrCompTargetNo = findCompTargetNo(mystrCompTargetTypeID(i))

       

        For j = LBound(mystrCompTargetNo) To UBound(mystrCompTargetNo)

            '计算一个合规性指标值

            Call myCompTargetServ.calCompTarget(mystrCompTargetNo(j), mystrCompTargetTypeID(i), intAccountID, dtmStartDate, dtmEndDate, colGotoutData)

        Next j

    Next i

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值