Vb.net 带循环的数之和

Vb.net 带循环的数之和,vb.net,while-loop,Vb.net,While Loop,因此,对于我的课程,我试图编写一个代码,将数字从1到10相加。例如,如果用户输入3,则该程序将添加1+2+3,最终答案将为6……。我尝试使用循环以及给出答案的显示台面来完成此操作 这是我到目前为止的代码 Option Strict On Public Class frmSumOfNumbers Private Sub btnEnterNumbers_Click(sender As Object, e As EventArgs) Handles btnEnterNumbers.Cli

因此,对于我的课程,我试图编写一个代码,将数字从1到10相加。例如,如果用户输入3,则该程序将添加1+2+3,最终答案将为6……。我尝试使用循环以及给出答案的显示台面来完成此操作

这是我到目前为止的代码

Option Strict On

Public Class frmSumOfNumbers


    Private Sub btnEnterNumbers_Click(sender As Object, e As EventArgs) Handles btnEnterNumbers.Click


        'For loop from 0 to counter -1
        InputBox("Enter A Positive integer value", "Input needed", "10")

    End Sub

    Function Validation(ByVal PositiveNumber As Double, ByRef Result As Double) As Boolean

        If PositiveNumber > -1 Then
            Result = CDbl(PositiveNumber)
        Else
            'pop message box and return false if not positive
            MessageBox.Show("Please enter positive numbers only")
            Return False

        End If


    End Function

    Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
        ' Closes the program
        Close()

    End Sub
End Class

第一个问题是提供一个从用户收集输入值的位置。看看InputBox函数

请注意,is返回一个字符串。我们可以通过提供一个字符串变量从用户那里获得输入

Dim UserInput As String
UserInput = InputBox("Enter A Positive integer value", "Input needed", "10")
但一旦我们到达终点,这个值就会消失!如果我们使用表单级别的变量来收集值,那么只要表单处于打开状态,该变量就会一直存在。表单级别(类级别)变量的另一个优点是,它可以由from中的任何方法显示

我们可以使用数组或列表之类的集合变量。因为我们不确定用户将输入多少数字,所以让我们使用一个列表。对于一个数组,每当我们得到一个新的数字来调整数组的大小时,我们都必须使用ReDim Preserve。列表中不需要这样做。看

在形式层面上

Private IntegerList as New List(Of Integer)
但是我们有一个来自用户的字符串变量。这就是验证代码的作用。我们需要传递用户在输入框中输入的内容(记住InputBox返回一个字符串),因此参数的数据类型为String。我们想要返回一个整数,因此函数的数据类型是Integer。函数中的任何return语句后面都必须跟一个整数值

我使用Integer.TryParse测试输入是否为数字,然后测试数字是否为正。见文件

如果用户输入通过了验证,则该编号将添加到列表中,否则将显示消息

要添加列表,可以使用.Net framework在后台使用列表的.Sum方法进行循环,也可以使用For Each循环自己进行循环。同样的结果

Private IntegerList As New List(Of Integer)

Private Sub AddANumber_Click(sender As Object, e As EventArgs) Handles AddANumber.Click
    Dim UserInput = InputBox("Enter A Positive integer value", "Input needed", "10")
    Dim RetVal = Validation(UserInput)
    If RetVal > -1 Then
        IntegerList.Add(RetVal)
    Else
        MessageBox.Show("Please enter positive numbers only")
    End If
End Sub

Function Validation(ByVal UserInput As String) As Integer
    Dim ReturnInteger As Integer
    If Integer.TryParse(UserInput, ReturnInteger) AndAlso ReturnInteger > -1 Then
        Return ReturnInteger
    Else
        Return -1
    End If
End Function

Private Sub DisplayTotal_Click(sender As Object, e As EventArgs) Handles DisplayTotal.Click
    Dim Total = IntegerList.Sum
    MessageBox.Show($"The Total is {Total}")
    Dim LoopTotal As Integer
    For Each i In IntegerList
        LoopTotal += i
    Next
    MessageBox.Show($"The LoopTotal is {LoopTotal}")
End Sub

注意:$前面的字符串称为插值字符串。您可以搜索该术语以了解其工作原理。

您的第一个问题是提供一个收集用户输入值的位置。看看InputBox函数

请注意,is返回一个字符串。我们可以通过提供一个字符串变量从用户那里获得输入

Dim UserInput As String
UserInput = InputBox("Enter A Positive integer value", "Input needed", "10")
但一旦我们到达终点,这个值就会消失!如果我们使用表单级别的变量来收集值,那么只要表单处于打开状态,该变量就会一直存在。表单级别(类级别)变量的另一个优点是,它可以由from中的任何方法显示

我们可以使用数组或列表之类的集合变量。因为我们不确定用户将输入多少数字,所以让我们使用一个列表。对于一个数组,每当我们得到一个新的数字来调整数组的大小时,我们都必须使用ReDim Preserve。列表中不需要这样做。看

在形式层面上

Private IntegerList as New List(Of Integer)
但是我们有一个来自用户的字符串变量。这就是验证代码的作用。我们需要传递用户在输入框中输入的内容(记住InputBox返回一个字符串),因此参数的数据类型为String。我们想要返回一个整数,因此函数的数据类型是Integer。函数中的任何return语句后面都必须跟一个整数值

我使用Integer.TryParse测试输入是否为数字,然后测试数字是否为正。见文件

如果用户输入通过了验证,则该编号将添加到列表中,否则将显示消息

要添加列表,可以使用.Net framework在后台使用列表的.Sum方法进行循环,也可以使用For Each循环自己进行循环。同样的结果

Private IntegerList As New List(Of Integer)

Private Sub AddANumber_Click(sender As Object, e As EventArgs) Handles AddANumber.Click
    Dim UserInput = InputBox("Enter A Positive integer value", "Input needed", "10")
    Dim RetVal = Validation(UserInput)
    If RetVal > -1 Then
        IntegerList.Add(RetVal)
    Else
        MessageBox.Show("Please enter positive numbers only")
    End If
End Sub

Function Validation(ByVal UserInput As String) As Integer
    Dim ReturnInteger As Integer
    If Integer.TryParse(UserInput, ReturnInteger) AndAlso ReturnInteger > -1 Then
        Return ReturnInteger
    Else
        Return -1
    End If
End Function

Private Sub DisplayTotal_Click(sender As Object, e As EventArgs) Handles DisplayTotal.Click
    Dim Total = IntegerList.Sum
    MessageBox.Show($"The Total is {Total}")
    Dim LoopTotal As Integer
    For Each i In IntegerList
        LoopTotal += i
    Next
    MessageBox.Show($"The LoopTotal is {LoopTotal}")
End Sub

注意:$前面的字符串称为插值字符串。您可以搜索该术语以了解其工作原理。

您的问题是什么?您没有读取
InputBox
返回的值
positiveEnumber
Result
不知从何处出现。没有循环。您的问题是什么?您没有读取由
InputBox
返回的值
positiveEnumber
Result
不知从何处出现。没有循环。