Visual Basic For Next不重复而不是递增1

时间:2016-10-29 18:49:01

标签: vba for-loop

我目前正在为Visual Basic做作业。作业是显示仅奇数1-9的平方值。我必须使用For Next来执行赋值所指定的操作。我不想要答案,而是要指向正确的方向。这是我的代码,目前它只显示9的平方值,但不会显示其他奇数的平方值。我做了几个教程,但我无法弄清楚为什么它不能继续循环。

Public Class MainForm
    Private Sub exitButton_Click(sender As Object, e As EventArgs) Handles exitButton.Click
        Me.Close()
    End Sub

    Private Sub displayButton_Click(sender As Object, e As EventArgs) Handles displayButton.Click
        'Start/end values and retainer for the values
        Dim startVal As Integer
        Dim endVal As Integer
        Dim squareVal As Integer
        startVal = 1
        endVal = 9

        'For loop to separate the odd and even numbers to square the odd numbers. 
        For _val As Integer = startVal To endVal Step 1
            If _val Mod 2 <> 0 Then
                squareVal = _val * _val
                squaresLabel.Text = squareVal.ToString() & ControlChars.NewLine
                _val += 1
            Else
                squaresLabel.Text = _val.ToString() & ControlChars.NewLine
                _val += 1
            End If
        Next _val

    End Sub
End Class

2 个答案:

答案 0 :(得分:2)

每次通过循环时,您都会覆盖存储在squaresLabel中的文本。查看赋值语句:

 squaresLabel.Text = squareVal.ToString() & ControlChars.NewLine

答案 1 :(得分:0)

我认为你只是重复计算而不是实际输出每个值。所以我建议你定义一个数组并将它们存储在其中。同时为每个值进行故障排除。希望它有所帮助。