【问题标题】:End a while loop in the event a condition is met在满足条件的情况下结束 while 循环
【发布时间】:2013-09-16 16:26:17
【问题描述】:

我正在将 Mathcad 代码转换为 VBA 并试图弄清楚如何复制 While 循环,它要求程序在 TGuess 1/1.4 打破循环(我会附上一张图片,但我的声誉不允许我这样做)。

我已经用 VBA 编写了这段代码,但我想知道在原始 While 语句中包含 sGuess 变量是否正确,或者它是否会影响循环的输出:

    While TGuess < 0 And sGuess <= 1 / 1.4

        kterm = (kj ^ (1 / 6)) / 26 'k term in the numerator of depth equation
                    epw = 3 / 5
        FDepth = ((kterm * RainInt * L * CF) / sGuess ^ 0.5) ^ epw

        tflow = UW_Wat * g * sGuess * FDepth    'Calc Flow Shear Stress

        pflow = 7.853 * UW_Wat * (tflow / UW_Wat) ^ (3 / 2)

        TGuess = pflow - pcrit   'Recalc TGuess as E-P
        sGuess = sGuess + SlopeInc  'Calc new stable slope
    Wend

我们将不胜感激。

【问题讨论】:

  • sGuess 的初始值是多少?
  • 简短的回答是在While ___ 位中有多个条件是可以的。是的,如果 sGuess 超过 1/1.4,它会影响循环的输出,但这不是你想要的吗?

标签: vba loops while-loop


【解决方案1】:

为了减轻您的担忧,最好将 while...wend 循环替换为 Do While ... Loop 块。然后,您可以通过使用类似于

的内容将您的中断条件放在相应的 Mathcad 代码中
If sGuess > 1/1.4 Then
    Exit Do
End If

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 2018-01-17
    • 2021-12-14
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    相关资源
    最近更新 更多