Bagikan melalui


Pernyataan If...Then...Else (Visual Basic)

Secara kondisional mengeksekusi sekelompok pernyataan, tergantung pada nilai ekspresi.

Sintaks

' Multiline syntax:
If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If

' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]

Artikel ini mencakup beberapa contoh yang menggambarkan Ifpenggunaan pernyataan ...Then ...Else:

Generator

condition
Harus diisi. Ekspresi. Harus mengevaluasi ke True atau False, atau ke jenis data yang secara implisit dapat dikonversi ke Boolean.

Jika ekspresi adalah variabel Nullable Boolean yang mengevaluasi ke Tidak Ada, kondisi diperlakukan seolah-olah ekspresi adalah False, dan ElseIf blok dievaluasi jika ada, atau Else blok dijalankan jika ada.

Then
Diperlukan dalam sintaks baris tunggal; opsional dalam sintaks multi baris.

statements
Opsional. Satu atau beberapa pernyataan berikut If...Then yang dijalankan jika condition dievaluasi ke True.

elseifcondition
Diperlukan jika ElseIf ada. Ekspresi. Harus mengevaluasi ke True atau False, atau ke jenis data yang secara implisit dapat dikonversi ke Boolean.

elseifstatements
Opsional. Satu atau beberapa pernyataan berikut ElseIf...Then yang dijalankan jika elseifcondition dievaluasi ke True.

elsestatements
Opsional. Satu atau beberapa pernyataan yang dijalankan jika tidak ada ekspresi atau condition sebelumnya elseifcondition yang dievaluasi ke True.

End If
Menghentikan versi multibaris dari If...Then ...Else Blok.

Keterangan

Sintaks multibaris

Ketika pernyataan ...IfThen ...Else ditemui, condition diuji. Jika condition adalah True, pernyataan berikut dijalankan Then. Jika condition adalah False, setiap ElseIf pernyataan (jika ada) dievaluasi secara berurutan. True elseifcondition Ketika ditemukan, pernyataan segera setelah yang terkait ElseIf dijalankan. Jika tidak ada elseifcondition evaluasi ke True, atau jika tidak ElseIf ada pernyataan, pernyataan berikut Else akan dijalankan. Setelah menjalankan pernyataan mengikutiThen, ElseIf,atau Else, eksekusi berlanjut dengan pernyataan berikutEnd If.

Klausul ElseIf dan Else keduanya opsional. Anda dapat memiliki klausul sebanyak ElseIf yang Anda inginkan dalam pernyataan If...Then ...Else, tetapi tidak ada ElseIf klausul yang dapat muncul setelah sebuah klausul Else. Pernyataan If...Then ...Elsedapat dilapiskan satu sama lain.

Dalam sintaks multibaris, If pernyataan tersebut harus menjadi satu-satunya pernyataan pada baris pertama. Pernyataan ElseIf, Else, dan End If hanya dapat didahului hanya oleh label garis. Blok ...IfThen ...Else harus diakhir End If dengan pernyataan.

Tip

Pilih... Pernyataan Kasus mungkin lebih berguna saat Anda mengevaluasi ekspresi tunggal yang memiliki beberapa nilai yang memungkinkan.

Sintaks Baris Tunggal

Anda dapat menggunakan sintaks satu baris untuk suatu kondisi dengan kode untuk dijalankan jika itu benar. Namun, sintaks multi-baris menyediakan lebih banyak struktur dan fleksibilitas dan lebih mudah dibaca, dipelihara, dan di-debug.

Hal yang mengikuti Then kata kunci diperiksa untuk menentukan apakah pernyataan tersebut adalah satu barisIf. Jika ada selain komentar yang muncul setelah Then pada baris yang sama, pernyataan itu diperlakukan sebagai pernyataan satu barisIf. Jika Then tidak ada, itu harus menjadi awal dari beberapa baris If...Then ...Else.

Dalam sintaks baris tunggal, Anda dapat memiliki beberapa pernyataan yang dijalankan sebagai hasil dari If...Then keputusan. Semua pernyataan harus berada pada garis yang sama dan dipisahkan oleh titik dua.

Contoh sintaks multibaris

Contoh berikut mengilustrasikan penggunaan sintaks Ifmultibaris dari pernyataan ...Then ...Else.

'Create a Random object to seed our starting value 
Dim randomizer As New Random()
'set our variable
Dim count As Integer = randomizer.Next(0, 5)

Dim message As String

'If count is zero, output will be no items
If count = 0 Then
    message = "There are no items."
    'If count is 1, output will be "There is 1 item.".        
ElseIf count = 1 Then
    message = "There is 1 item."
    'If count is greater than 1, output will be "There are {count} items.", where {count} is replaced by the value of count. 
Else
    message = $"There are {count} items."
End If

Console.WriteLine(message)

'This example displays output like the following:
' There are 4 items.

Contoh sintaks berlapis

Contoh berikut berisi pernyataanIf...Then ...Elseberlapis.

Public Sub Main()
    ' Run the function as part of the WriteLine output.
    Console.WriteLine("Time Check is " & CheckIfTime() & ".")
End Sub

Private Function CheckIfTime() As Boolean
    ' Determine the current day of week and hour of day.
    Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
    Dim hour As Integer = DateTime.Now.Hour

    ' Return True if Wednesday from 2 to 3:59 P.M.,
    ' or if Thursday from noon to 12:59 P.M.
    If dayW = DayOfWeek.Wednesday Then
        If hour = 14 Or hour = 15 Then
            Return True
        Else
            Return False
        End If
    ElseIf dayW = DayOfWeek.Thursday Then
        If hour = 12 Then
            Return True
        Else
            Return False
        End If
    Else
        Return False
    End If
End Function

'This example displays output like the following:
'Time Check is False.

Contoh sintaks garis tunggal

Contoh berikut mengilustrasikan penggunaan sintaks garis tunggal.

Private Sub SingleLine()

    'Create a Random object to seed our starting values 
    Dim randomizer As New Random()

    Dim A As Integer = randomizer.Next(10, 20)
    Dim B As Integer = randomizer.Next(0, 20)
    Dim C As Integer = randomizer.Next(0, 5)

    'Let's display the initial values for comparison
    Console.WriteLine($"A value before If: {A}")
    Console.WriteLine($"B value before If: {B}")
    Console.WriteLine($"C value before If: {C}")

    ' If A > 10, execute the three colon-separated statements in the order
    ' that they appear
    If A > 10 Then A = A + 1 : B = B + A : C = C + B

    'If the condition is true, the values will be different
    Console.WriteLine($"A value after If: {A}")
    Console.WriteLine($"B value after If: {B}")
    Console.WriteLine($"C value after If: {C}")

End Sub

'This example displays output like the following:
'A value before If: 11
'B value before If: 6
'C value before If: 3
'A value after If: 12
'B value after If: 18
'C value after If: 21

Lihat juga