Vb.net VB中For循环存在的问题

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

我正在用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
        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
如果您想要总数,可以从上面用“+”替换“&”