VB.NET:部分代码根本不执行

时间:2019-12-16 16:36:33

标签: vb.net for-loop

我在VB.NET中有包含两个嵌套的For语句的代码。例如

For i = 0 to ListBox1.Items.Count - 1
 MsgBox("First For statement")
 For x = 5 to 1
  MsgBox("Second For statement")
 Next
Next

现在,第一个For语句可以很好地执行,但是第二个则不能。怎么来的?代码不应该逐行执行吗?

2 个答案:

答案 0 :(得分:0)

Vb.net中的循环语法:

For counter [ As datatype ] = start To end [ Step step ]
[ statements ]
[ Continue For ]
[ statements ]
[ Exit For ]
[ statements ]
Next [ counter ]

您错过了输入代码的步骤

For x = 5 to 1 step -1
   MsgBox("Second For statement")
Next

答案 1 :(得分:0)

  

现在,第一个For语句可以很好地执行,但是第二个则不能。   怎么会来?

请参见For...Next Statement

  

当For ... Next循环开始时,Visual Basic评估开始,结束和   步。 Visual Basic仅在此时评估这些值,然后   分配开始计数器。在语句块运行之前,Visual   基本比较。如果计数器已经大于   结束值(如果step为负,则为较小值),For循环结束并   控制传递给Next语句之后的语句。   否则,语句块将运行。

由于5已经大于1,因此内部循环永远不会执行。

文档还指出:

  

step的默认值为1。

因此,如果您想让循环递减(向后计数),则需要指定步进值。假设您希望每次将其递减1(一),则将代码更改为:

For i = 0 to ListBox1.Items.Count - 1
    MsgBox("First For statement")
    For x = 5 to 1 Step -1
        MsgBox("Second For statement")
    Next
Next