如何在Visual Basic 6中嵌套多个IF语句?

时间:2013-03-29 17:57:11

标签: vb6

如何在Visual Basic 6中的另一个if中使用if

例如,在C ++中,我可以使用{开始我的语句,并使用}完成它们,我可以在第一个语句中使用另一个if

例如:

if m>3
{       .....
     if a>5
      {
       ......
      }
     else {....}
} else ........

...但在Visual Basic中没有{ }或类似的东西

我想编写一个程序,从用户那里获取时间并从中减少4:30!例如,当用户运行它时,它会问:德黑兰几点钟了?和用户输入时间(例如16:30),然后程序减少4小时30分钟!和打印:GMT时间是:12:00!我会更新我的帖子并输入我的代码!请仔细阅读!

Option Explicit

Private Sub Command1_Click()
    Cls
    Dim h As Integer, m As Integer, hm As Integer, mm As Integer, t As Integer
    Dim fh As String, fm As String, fhm As String, fmm As String

    t = InputBox("Enter time")
    h = t \ 100
    m = t Mod 100

    Select Case h

    Case 0 To 24

        If m < 60 Then
            If m >= 30 Then

                hm = h - 4
                mm = m - 30

                If h < 10 Then fh = Format(h, String(2, "0")) Else fh = h
                If m < 10 Then fm = Format(m, String(2, "0")) Else fm = m
                If hm < 10 Then fhm = Format(hm, String(2, "0")) Else fhm = hm
                If mm < 10 Then fmm = Format(mm, String(2, "0")) Else fmm = mm

                Print
                Print "      Tehran  Time is  :   "; fh; ":"; fm
                Print
                Print "      GMT       Time is  :   "; fhm; ":"; 
            Else
                hm = h - 5
                mm = m + 30

                If h < 10 Then fh = Format(h, String(2, "0")) Else fh = h
                If m < 10 Then fm = Format(m, String(2, "0")) Else fm = m
                If hm < 10 Then fhm = Format(hm, String(2, "0")) Else fhm = hm
                If mm < 10 Then fmm = Format(mm, String(2, "0")) Else fmm = mm

                Print
                Print "      Tehran  Time is  :   "; fh; ":"; fm
                Print
                Print "      GMT       Time is  :   "; fhm; ":"; fmm
            End If
        End If

    Case Else

        Beep
        Print
        Print "   Time is wrong !!!  Try again "

    End Select

End Sub

Private Sub Command2_Click()
        End
End Sub

Private Sub Form_Load()

End Sub

2 个答案:

答案 0 :(得分:13)

如果VB中的子句以“End If”结束(不区分大小写)。没有任何括号。

只要您关闭它们,就可以根据需要嵌套if子句:

If ... Then
    *Do stuff*

    If ... Then
        *Do more stuff*
    End If
End If

答案 1 :(得分:7)

单行If语句也可以嵌套:

If (a) Then [a_stuff] : If (b) Then [a_and_b_stuff] Else [a_and_notb_stuff] Else [nota_stuff]

请注意,在[a_stuff]之后不能再出现[a_and_notb_stuff],因为没有办法告诉b的Else语句在哪里结束,所以在嵌套的If语句之后没有任何内容出现在子句中。

任何*_stuff部分都可以为空。但是你可能在空[a_and_notb_stuff]时遇到一些困难,因为VB6 IDE似乎有点气质,并且会尝试在那里插入一个无效的第三个'Else'语句。要解决此问题,您可以使用“:”代替[a_and_notb_stuff]。冒号将被IDE删除,但它不会插入另一个Else语句。

附录:我应该指出,整个职位应该被视为信息,而不是建议。嵌套单行If这样的语句会产生非常难以理解且容易出错的代码。