Vb.net &引用;确保你没有被零除;错误Visual Basic express
我正在使用Visual Basic express 2010。我想创建一个程序,在给定0时询问数字并停止。然后我想检查所有这些值,以找到最小值、最大值、平均值和总和。我有以下代码:Vb.net &引用;确保你没有被零除;错误Visual Basic express,vb.net,Vb.net,我正在使用Visual Basic express 2010。我想创建一个程序,在给定0时询问数字并停止。然后我想检查所有这些值,以找到最小值、最大值、平均值和总和。我有以下代码: Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim total As Intege
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim total As Integer
total = 0
Dim average As Integer
average = 0
Dim loops As Integer
loops = 0
Dim max As Integer
max = 0
Dim min As Integer
min = Val(InputBox("Give me the first number"))
Dim number As Integer
number = Val(InputBox("Give me a number"))
Do Until number = 0
loops = loops + 1
If number < min Then
min = number
ElseIf number > max Then
max = number
End If
total = number + total
Loop
average = total / loops
MsgBox(total)
End Sub
End Class
公共类表单1
私有子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击
将总计设置为整数
总数=0
将平均值设置为整数
平均值=0
作为整数的Dim循环
循环=0
将最大值调整为整数
最大值=0
将最小值设置为整数
min=Val(输入框(“给我第一个数字”))
整数形式的数字
number=Val(输入框(“给我一个数字”))
直到数字=0为止
循环=循环+1
如果数量<最小值,则
最小值=个数
ElseIf数>最大值
最大值=个数
如果结束
总数=数量+总数
环
平均值=总循环数/循环数
MsgBox(总计)
端接头
末级
当我按F5键时,它会显示屏幕。在前两个输入框后,程序崩溃。有什么想法吗?
看看你的循环:
Do Until number = 0
loops = loops + 1
If number < min Then
min = number
ElseIf number > max Then
max = number
End If
total = number + total
Loop
由于循环
是一个整数
,因此它的范围相当有限。一旦它达到MaxInt
的值,就不能再添加到它了。因此,下次添加时,您会看到一个异常
您需要修改循环中的number
,以便它能够完成
请注意,“除以零”部分实际上不是您看到的错误消息的一部分。这只是VisualStudio向您展示的一个建议,因为除以零是此错误的常见来源。这不是这次错误的来源。嘿,看看这段代码。你有问题,因为号码没有改变
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim total As Integer
total = 0
Dim average As Integer
average = 0
Dim loops As Integer
loops = 0
Dim max As Integer
max = 0
Dim min As Integer
min = Val(InputBox("Give me the first number"))
Dim number As Integer
number = Val(InputBox("Give me a number"))
Do Until number = 0
loops = loops + 1
If number < min Then
min = number
ElseIf number > max Then
max = number
End If
total = number + total
number = Val(InputBox("Give me a number"))
Loop
average = total / loops
MsgBox(total)
End Sub
End Class
公共类表单1
私有子按钮1\u单击(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理按钮1。单击
将总计设置为整数
总数=0
将平均值设置为整数
平均值=0
作为整数的Dim循环
循环=0
将最大值调整为整数
最大值=0
将最小值设置为整数
min=Val(输入框(“给我第一个数字”))
整数形式的数字
number=Val(输入框(“给我一个数字”))
直到数字=0为止
循环=循环+1
如果数量<最小值,则
最小值=个数
ElseIf数>最大值
最大值=个数
如果结束
总数=数量+总数
number=Val(输入框(“给我一个数字”))
环
平均值=总循环数/循环数
MsgBox(总计)
端接头
末级
number
在循环中没有变化,因此最终循环的值将过大(溢出)。不知道它和被零除有什么关系
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim total As Integer
total = 0
Dim average As Integer
average = 0
Dim loops As Integer
loops = 0
Dim max As Integer
max = 0
Dim min As Integer
min = Val(InputBox("Give me the first number"))
Dim number As Integer
number = Val(InputBox("Give me a number"))
Do Until number = 0
loops = loops + 1
If number < min Then
min = number
ElseIf number > max Then
max = number
End If
total = number + total
number = Val(InputBox("Give me a number"))
Loop
average = total / loops
MsgBox(total)
End Sub
End Class