VB.net变量增加

时间:2017-01-10 15:16:09

标签: vb.net for-loop

我试图通过更改步长来执行for循环:

Dim i As Integer = 1
Dim a As Integer
Dim b As Integer

For s As Integer = 0 To T Step i
    b = 999
    a = 0
    For t As Integer = s To T
        do stuff with a
        Select Case a
            Case <= b
                b = a
            Case > b
                i = t + 1
                Exit For
        End Select
    Next t
Next s

我想要&#34; s&#34;循环向前迈进,取决于&#34; t&#34;循环已经消失,因此我给它值#34; t + 1&#34;在退出&#34; t&#34;环...

我错过了什么吗? 很多!

2 个答案:

答案 0 :(得分:3)

循环开始后,您无法更改step的值。 For循环的MSDN文档说明了这一点:

  

当For ... Next循环启动时,Visual Basic会评估开始,结束和步骤。 Visual Basic仅在此时评估这些值,然后将start指定为计数器。在语句块运行之前,Visual Basic将计数器与结束进行比较。如果counter已经大于结束值(或者如果step为负数则更小),For循环结束并且控制传递给Next语句后面的语句。否则,语句块将运行。

  

更改start,end或step的值不会影响首次输入循环时确定的迭代值。

有关详细信息,请参阅https://msdn.microsoft.com/en-us/library/5z06z1kb.aspx

增加步骤的替代方法可以是在存在适当条件的点处使用Continue For来停止执行当前循环迭代并直接移动到下一个迭代。或者,您可以使用While循环重新实现该功能,从而为您提供更大的灵活性。

除此之外,您的示例代码将无法编译,因为您a)您尚未声明t / T并且b)您不能再次使用t作为内循环的计数器。

答案 1 :(得分:0)

感谢您的帮助!
首都T只是最小的例子;-)在我的完整代码中,它被称为perioden
我最后使用了Do ... Loop Exit Do条件......工作正常!