如何在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
答案 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这样的语句会产生非常难以理解且容易出错的代码。