首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于VB goto 和if else的有关问题

2012-12-23 
关于VB goto 和if else的问题If Not mode ThenCOM1.InputLen 14COM1.InBufferCount 0COM1.Output ou

关于VB goto 和if else的问题
If Not mode Then     
            COM1.InputLen = 14
            COM1.InBufferCount = 0
            COM1.Output = outData
            tl = timeGetTime
           ...........
        Else
toNext:
            COM1.InputLen = 1
            Do Until COM1.InBufferCount > 13
                DoEvents
                Sleep 2
            Loop
…………
  End If


     Else 后面没有什么东西了,直接跟着toNext: ,难道else 之后执行的就是toNext: 里面的程序吗? 不是只有goto才能进入到toNext:里吗?

看清我的提问:我是问,为什么 Else 后面没有东西了而是跟着toNext: 然后才是end if 难道else之后直接执行toNext:里的内容?


下面还有一段程序,同样是困惑:如果说chkagain:只有goto指过去才能执行,那么可以看到下面的程序,goto 在chkagain:之下,也就是说,进去了才有可能执行到:If SetWenda Then GoTo chkagain 然后返回来chkagain:,所以我要问的是,是不是程序执行到chkagain:处,会当做一般的程序,继续执行chkagain:以下的内容,然后如果有goto 指向过来,也可以直接跳过来?

 If COM1.PortOpen = True Then COM1.PortOpen = False
    
    comSetting = Combo1.Text & ",n,8,1 "
    COM1.Settings = comSetting
    COM1.CommPort = Val(Combo1)
    COM1.InputLen = 14
    COM1.PortOpen = True
    
chkagain:    COM1.InBufferCount = 0

    Sleep 150                                         '延时150ms
    If COM1.InBufferCount > 10 Then                   '>10说明开始有数据返回
        If SetWenda Then GoTo chkagain        
        If False Then
            Label1 = "BROADCAST  "

            ExBtn3.Enabled = False
            bOnline = True
            mode = True
            '   ExBtn5.Enabled = False
            ExBtn6.Enabled = False
            ExBtn7.Enabled = False
            ExBtn9.Enabled = False
            ' ExBtn12.Enabled = False


            ' ExBtn13.Enabled = False
            ' ExBtn14.Enabled = False
            MMButton_MACE1.Enabled = True
            MMButton_MACE2.Enabled = True
        End If
    Else

           
[最优解释]
toNext:
只是一个位置标签,表示位置,你可以在程序的任何位置加入位置标签,但该标签只有goto语句有用,不使用也没关系
[其他解释]
标签本身是不影响程序的正常往下运行的,调用是只有goto可以
不过第一段的那个写法让人看了很乱
[其他解释]
if 完了之后 加上END if 就好了
[其他解释]
GoTo 语句示例
本示例使用 GoTo 语句在一个过程内的不同程序段间作流程控制,不同程序段用不同的“程序标签”来区隔。

Sub GotoStatementDemo()
Dim Number, MyString
   Number = 1    ' 设置变量初始值。
   ' 判断 Number 的值以决定要完成那一个程序区段(以“程序标签”来表式)。
   If Number = 1 Then GoTo Line1 Else GoTo Line2
   
Line1:
   MyString = "Number equals 1"
   GoTo LastLine   ' 完成最后一行。
Line2:
   ' 下列的语句根本不会被完成。
   MyString = "Number equals 2"
LastLine: 
   Debug.Print MyString   ' 将“"Number equals 1"”显示在“立即”窗口。
End Sub


[其他解释]
自己解决了,但是内心还是非常感谢大家的回答!!

热点排行