Visual Basic 除法

Visual Basic dividing

我正在使用 visual basic,我正在阅读我老师写的一段代码,他有这段代码:

 Private Sub btnDividing_Click(sender As Object, e As EventArgs) Handles btnDividing.Click
    Dim number As Integer = InputBox("Divide number by 2:")
    Dim result As Integer = 0

    Do While (number <> 0)
        result += 1 
        number = number - 2
    Loop
    MsgBox("The result is: " & result, MsgBoxStyle.Exclamation)

End Sub

所以我的老师输入了 result += 1number = number -2 我不太明白那部分所以我尝试通过将其更改为来简化它:

    Dim number As Integer = InputBox("Divide number by 2:")
    Dim result As Integer = 0

    Do While (number <> 0)
        result = number / 2
    Loop
    MsgBox("The result is: " & result, MsgBoxStyle.Exclamation)

End Sub

但点击后一直卡住"OK"

有什么建议吗?

它卡住了,因为你把它变成了一个无限循环:

Do While (number <> 0)
    result = number / 2
Loop

循环检查 number 的值,但您在循环中修改的代码永远不会 修改 number 的值。因此,如果条件在第一次检查时为真,它将永远为真。原代码修改值:

Do While (number <> 0)
    result += 1 
    number = number - 2
Loop

由于number随着循环的每次迭代递减2,它最终(假设它是偶数)等于0,使得循环条件为假并且循环将结束。

基本上,循环需要以某种方式修改条件中检查的值(或有一些其他控制语句退出循环),否则循环将无限地 运行.