我在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语句可以很好地执行,但是第二个则不能。怎么来的?代码不应该逐行执行吗?
答案 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循环开始时,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