我必须为多项式创建一个计算器。除分部外,所有操作都完美无缺。我试图调试它,看看它为什么循环,我发现在结束for指令后,它会跳回到开始。
我在这里写了我的课程。 http://pastebin.com/1vCkS2WW
在Operatii Class中,当第二个结束时,它会跳回到哪里。你能告诉我为什么会这样,我该怎么做才能结束呢?
答案 0 :(得分:1)
在第132行,你有一个while循环,其中一个条件是i< 5但是你没有在循环内增加变量,所以它永远不会退出。
答案 1 :(得分:0)
在第二个for循环之后,你会回来,因为你已经编写了代码。要结束它,您应该确保while中的条件更改为Public Sub aSort(ByRef InOut)
Dim i As Long, J As Long, Low As Long
Dim Hi As Long, Temp As Variant
Low = LBound(InOut)
Hi = UBound(InOut)
J = (Hi - Low + 1) \ 2
Do While J > 0
For i = Low To Hi - J
If InOut(i) > InOut(i + J) Then
Temp = InOut(i)
InOut(i) = InOut(i + J)
InOut(i + J) = Temp
End If
Next i
For i = Hi - J To Low Step -1
If InOut(i) > InOut(i + J) Then
Temp = InOut(i)
InOut(i) = InOut(i + J)
InOut(i + J) = Temp
End If
Next i
J = J \ 2
Loop
End Sub
Sub MAIN()
Dim ary(1 To 3) As Double, msg As String
Dim i As Long
ary(1) = 0.4
ary(2) = 0.1
ary(3) = 0.5
Call aSort(ary)
msg = ""
For i = 1 To 3
msg = msg & ary(i) & vbCrLf
Next i
MsgBox msg
End Sub
。您的false
变量始终低于5,因此请注意条件的第一部分。