新的VB,试图在VB中做一些计算编码,但它似乎不起作用吗?
我已经将整数存储在“Access”中。
Dim max_number As Integer = 63
If Access > max_number Then
Access = max_number
End If
While Access > max_number Or Access >= 0
If Access - 32 >= 0 Then
Access = Access - 32
Text1.Text = "1"
ElseIf Access - 16 >= 0 Then
Access = Access - 16
Text2.Text = " 1"
ElseIf Access - 8 >= 0 Then
Access = Access - 8
Text3.Text = "1"
ElseIf Access - 4 >= 0 Then
Access = Access - 4
Text4.Text = "1"
ElseIf Access - 2 >= 0 Then
Access = Access - 2
Text5.Text = "1"
ElseIf Access - 1 >= 0 Then
Access = Access - 1
Text6.Text = " 1"
End If
Access = 0
End While非常感谢。
发布于 2013-11-25 18:59:34
删除循环中的"Access = 0“,并将循环更改为和您不需要测试的max_number,因为它已经完成了。
While Access > 0如果您尝试在纸面上运行它,您会注意到如果Access等于2,它将进入您的If (do Access = Access - 2),并且Access将等于0,您将处于infite循环中。
但你不需要时间循环。
Dim max_number As Integer = 63
If Access > max_number Then
Access = max_number
End If
If Access > 0 Then
If (Access And 32) > 0 Then Text1.Text = "1"
If (Access And 18) > 0 Then Text2.Text = "1"
If (Access And 8) > 0 Then Text3.Text = "1"
If (Access And 4) > 0 Then Text4.Text = "1"
If (Access And 2) > 0 Then Text5.Text = "1"
If (Access And 1) > 0 Then Text6.Text = "1"
End If发布于 2013-11-25 13:07:49
您被困在无限循环中,因为您一直在循环的末尾将Access设置为零。
另外,我不知道您到底想要做什么,但是您可能需要查看Mod操作符,因为它可能会减少循环中需要的迭代次数。
无论如何,要打破无限循环,请尝试如下:
Dim max_number As Integer = 63
If Access > max_number Then
Access = max_number
End If
While Access > max_number Or Access >= 0
If Access - 32 >= 0 Then
Access = Access - 32
Text1.Text = "1"
ElseIf Access - 16 >= 0 Then
Access = Access - 16
Text2.Text = " 1"
ElseIf Access - 8 >= 0 Then
Access = Access - 8
Text3.Text = "1"
ElseIf Access - 4 >= 0 Then
Access = Access - 4
Text4.Text = "1"
ElseIf Access - 2 >= 0 Then
Access = Access - 2
Text5.Text = "1"
ElseIf Access - 1 >= 0 Then
Access = Access - 1
Text6.Text = " 1"
Else
Exit While
End If
End Whilehttps://stackoverflow.com/questions/20188305
复制相似问题