0

Visual Basic 6 でan ifanother を使用するにはどうすればよいですか?if

たとえば、C++ では、ステートメントを で開始して{で終了し、最初のステートメントで}別のステートメントを使用できますif

例えば:

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

…しかし、Visual Basic にはそれがない{ }か、似たようなものはありません。

ユーザーから時間を受け取り、そこから 4:30 を短縮するプログラムを書きたいです。たとえば、ユーザーがそれを実行すると、次のように尋ねられます: テヘランは何時ですか? ユーザーが時刻 (たとえば 16:30) を入力してから、プログラムを実行すると、そこから 4 時間 30 分短縮されます。および print : GMT time is : 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
4

2 に答える 2

13

VB の If 句は「End If」で終了します (大文字と小文字は区別されません)。ブラケットは一切ありません。

if 句は、閉じる限り、いくつでもネストできます。

If ... Then
    *Do stuff*

    If ... Then
        *Do more stuff*
    End If
End If
于 2013-03-29T18:05:27.103 に答える
7

単一行の If ステートメントもネストできます。

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

[a_stuff]b の Else ステートメントがどこで終了するかを知る方法がないため、 の後にこれ以上表示できないことに注意してください[a_and_notb_stuff]。したがって、ネストされた If ステートメントの後の句には何も表示できません。

どの*_stuff部分も空にすることができます。しかし、空[a_and_notb_stuff]の . これを回避するには、 の:代わりに ' ' を挿入し[a_and_notb_stuff]ます。コロンは IDE によって削除されますが、別の Else ステートメントは挿入されません。

補遺: この投稿全体は、推奨事項としてではなく、情報として扱う必要があることを指摘しておく必要があります。このような単一行の If ステートメントをネストすると、非常に読みにくく、バグが発生しやすいコードになります。

于 2013-03-29T19:08:54.700 に答える