简单VB问题,实时错误6,益出!

来源:百度知道 编辑:UC知道 时间:2024/06/17 12:18:17
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim n As Integer
a = InputBox("请输入父亲的年龄:")
b = InputBox("请输入女儿的年龄:")
Do
n = n + 1
i = n + a
j = n + b
Loop Until i = j * 2
Print n; "年后父亲的年龄是女儿的两倍"
End Sub
这个代码,如果输入30和10就可以运行,但是如果输入30和20,就会出现错误6,益出,是怎么回事啊?

这是实际问题, 不大可能成立的. 哪有十岁时就做父亲的...

程序中
1. 是因为你的条件永远不参成立. 因 30 < 20*2=40 ,做i=j*2永远有成立, 终究会溢出的.
2. 你可以采用添加一些条件进行完善程序

Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim n As Integer
a = InputBox("请输入父亲的年龄:")
b = InputBox("请输入女儿的年龄:")
If a >= b * 2 Then
n = 0
Do While a > b * 2
a = 1 + a
b = 1 + b
n = n + 1
Loop
Print "目前,父亲:"; a - n; ", 女儿:"; b - n; " ,"; n; "年后父亲的年龄是女儿的两倍!"
Else
Print "父亲的年龄是女儿的两倍,好像已经不可能了。"
End If
End Sub

Good Day!

如果父亲30,女儿年龄在15以下时,父亲年龄才有可能是女儿的2倍,女儿年龄大于15,大家每年+1,父亲年龄永远不可能是女儿的两倍,一直循环到32767,仍然无解,溢出。
最开始加一个判断,

Dim a As Integer
Dim b As Integer
Dim n As Integer
a = InputBox("请输入父亲的年龄:")
b = InputBox("请输入女儿的年龄:")
if b*2 > a then
print