Vb.net VB中For循环存在的问题
我正在用VB编写一个程序,我必须使用for循环在两个数字(循环限制1和2)之间排序,并找出它们是偶数还是奇数,然后将结果输出到两个标签。这个循环对我来说是有意义的,但例如,当我输入1和4时,它的所有输出都是奇数标签中的5。我想我的问题是,有人能看到我的循环的问题吗 您不需要手动将1添加到循环变量Vb.net VB中For循环存在的问题,vb.net,loops,for-loop,Vb.net,Loops,For Loop,我正在用VB编写一个程序,我必须使用for循环在两个数字(循环限制1和2)之间排序,并找出它们是偶数还是奇数,然后将结果输出到两个标签。这个循环对我来说是有意义的,但例如,当我输入1和4时,它的所有输出都是奇数标签中的5。我想我的问题是,有人能看到我的循环的问题吗 您不需要手动将1添加到循环变量i,而for循环本身会在幕后为您这样做: For i = 1 To 5 If i = 0 Then i = i + 1 ElseIf i Mod 2 = 0 Then
i
,而for
循环本身会在幕后为您这样做:
For i = 1 To 5
If i = 0 Then
i = i + 1
ElseIf i Mod 2 = 0 Then
LabelEvens.Text = i
i = i + 1
Else
LabelOdds.Text = i
i = i + 1
End If
Next i
您会注意到,我还删除了I=0时的位,因为I
在该循环中永远不能为零。范围从一到五(含一)
您需要做的另一件事是将值附加到文本框中。您目前拥有的是一个替换项,因此它将只设置为最后处理的值。这样的东西应该足够了:
For i = 1 To 5
If i Mod 2 = 0 Then
LabelEvens.Text = i
Else
LabelOdds.Text = i
End If
Next i
您不需要手动将1添加到循环变量i
,for
循环本身会在幕后为您这样做:
For i = 1 To 5
If i = 0 Then
i = i + 1
ElseIf i Mod 2 = 0 Then
LabelEvens.Text = i
i = i + 1
Else
LabelOdds.Text = i
i = i + 1
End If
Next i
您会注意到,我还删除了I=0时的位,因为I
在该循环中永远不能为零。范围从一到五(含一)
您需要做的另一件事是将值附加到文本框中。您目前拥有的是一个替换项,因此它将只设置为最后处理的值。这样的东西应该足够了:
For i = 1 To 5
If i Mod 2 = 0 Then
LabelEvens.Text = i
Else
LabelOdds.Text = i
End If
Next i
代码中的一些问题:
' Initialise to empty strings '
LabelEvens.Text = ""
LabelOdds.Text = ""
' Append the values '
For i = 1 To 5
If i Mod 2 = 0 Then
LabelEvens.Text = LabelEvens.Text & "," & CStr(i)
Else
LabelOdds.Text = LabelOdds.Text & "," & CStr(i)
End If
Next i
' Remove initial comma from both '
LabelEvens.Text = Mid(LabelEvens.Text,2)
LabelOdds.Text = Mid(LabelOdds.Text,2)
i=1到5的
如果i=0,则代码中存在一些问题:
' Initialise to empty strings '
LabelEvens.Text = ""
LabelOdds.Text = ""
' Append the values '
For i = 1 To 5
If i Mod 2 = 0 Then
LabelEvens.Text = LabelEvens.Text & "," & CStr(i)
Else
LabelOdds.Text = LabelOdds.Text & "," & CStr(i)
End If
Next i
' Remove initial comma from both '
LabelEvens.Text = Mid(LabelEvens.Text,2)
LabelOdds.Text = Mid(LabelOdds.Text,2)
i=1到5的
如果i=0,则您也可以声明
For i = 1 To 5
If i = 0 Then <-- 'I' will never be 0 since you start from 1
i = i + 1 <-- Don't manually increment since you are using a for
ElseIf i Mod 2 = 0 Then
LabelEvens.Text = i
i = i + 1 <-- Don't manually increment since you are using a for
Else
LabelOdds.Text = i
i = i + 1 <-- Don't manually increment since you are using a for
End If
Next i
如果您想要总数,可以从上面用“+”替换“&”。您也可以声明
For i = 1 To 5
If i = 0 Then <-- 'I' will never be 0 since you start from 1
i = i + 1 <-- Don't manually increment since you are using a for
ElseIf i Mod 2 = 0 Then
LabelEvens.Text = i
i = i + 1 <-- Don't manually increment since you are using a for
Else
LabelOdds.Text = i
i = i + 1 <-- Don't manually increment since you are using a for
End If
Next i
如果您想要总数,可以从上面用“+”替换“&”