Pilih...Pernyataan Kasus (Visual Basic)
Menjalankan salah satu dari beberapa grup pernyataan, bergantung pada nilai ekspresi.
Sintaks
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
Generator
Term | Definisi |
---|---|
testexpression |
Harus diisi. Ekspresi. Harus mengevaluasi ke salah satu jenis data dasar (Boolean , Byte , Char , Date , Double , Decimal , Integer , Long , Object , SByte , Short , Single , String , UInteger , ULong , dan UShort ). |
expressionlist |
Diperlukan dalam pernyataan Case . Daftar klausul ekspresi yang mewakili nilai kecocokan untuk testexpression . Beberapa klausul ekspresi dipisahkan oleh koma. Setiap klausul dapat mengambil salah satu formulir berikut:- ekspresi1 To ekspresi2- [ Is ] ekspresi perbandingan pengoperator - expression Gunakan kata kunci To untuk menentukan batasan rentang nilai kecocokan untuk testexpression . Nilai expression1 harus kurang dari atau sama dengan nilai expression2 .Gunakan kata kunci Is dengan operator perbandingan (= , <> , < , <= , > , atau >= ) untuk menentukan batasan pada nilai kecocokan untuk testexpression . Jika kata kunci Is tidak disediakan, kata kunci secara otomatis dimasukkan sebelum comparisonoperator.Formulir yang menentukan hanya expression diperlakukan sebagai kasus khusus dari formulir Is di mana comparisonoperator adalah tanda sama dengan (= ). Formulir ini dievaluasi sebagai testexpression = expression .Ekspresi dalam expressionlist dapat berupa jenis data apa pun, asalkan secara implisit dapat dikonversi ke jenis testexpression dan comparisonoperator yang sesuai valid untuk dua jenis yang digunakannya. |
statements |
Opsional. Satu atau beberapa pernyataan setelah Case yang berjalan jika testexpression cocok dengan klausul apa pun di expressionlist . |
elsestatements |
Opsional. Satu atau beberapa pernyataan setelah Case Else yang berjalan jika testexpression tidak cocok dengan klausul apa pun di expressionlist dari salah satu dari Case pernyataan. |
End Select |
Mengakhiri definisi konstruksi Select ...Case . |
Keterangan
Jika testexpression
cocok dengan klausul apa pun Case
expressionlist
, pernyataan yang mengikuti Case
pernyataan tersebut berjalan hingga pernyataan , , Case Else
atau End Select
berikutnyaCase
. Kontrol kemudian meneruskan ke pernyataan setelah End Select
. Jika testexpression
cocok dengan klausul expressionlist
dalam lebih dari satu klausul Case
, hanya pernyataan setelah kecocokan pertama yang dijalankan.
Pernyataan Case Else
ini digunakan untuk memperkenalkan elsestatements
untuk dijalankan jika tidak ada kecocokan yang ditemukan antara testexpression
dan klausul expressionlist
di salah satu pernyataan Case
lainnya. Meski tidak diperlukan, ada baiknya untuk memiliki pernyataan Case Else
dalam konstruksi Select Case
Anda untuk menangani nilai testexpression
yang tidak terduga. Jika tidak ada Case
expressionlist
klausa yang cocok testexpression
dan tidak Case Else
ada pernyataan, kontrol meneruskan ke pernyataan berikut End Select
.
Anda dapat menggunakan beberapa ekspresi atau rentang di setiap klausul Case
. Misalnya, baris berikut ini valid.
Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber
Catatan
Kata kunci Is
yang digunakan dalam pernyataan Case
dan Case Else
tidak sama dengan Is Operator, yang digunakan untuk perbandingan referensi objek.
Anda dapat menentukan rentang dan beberapa ekspresi untuk string karakter. Dalam contoh berikut, Case
cocok dengan string apa pun yang sama persis dengan "apel", memiliki nilai antara "kacang" dan "sup" dalam urutan alfabet, atau berisi nilai yang sama persis dengan nilai testItem
saat ini.
Case "apples", "nuts" To "soup", testItem
Pengaturan Option Compare
dapat memengaruhi perbandingan string. Di bawah Option Compare Text
, string "Apel" dan "apel" membandingkannya sebagai sama, tetapi di bawah Option Compare Binary
, tidak sama.
Catatan
Pernyataan Case
dengan beberapa klausul dapat menunjukkan perilaku yang dikenal sebagai sirkuit pendek. Visual Basic mengevaluasi klausul dari kiri ke kanan, dan jika satu menghasilkan kecocokan dengan testexpression
, klausul yang tersisa tidak dievaluasi. Sirkuit pendek dapat meningkatkan performa, tetapi dapat menghasilkan hasil yang tidak terduga jika Anda mengharapkan setiap ekspresi dalam expressionlist
dievaluasi. Untuk informasi selengkapnya tentang sirkuit pendek, lihat Ekspresi Boolean.
Jika kode dalam blok pernyataan Case
atau Case Else
tidak perlu menjalankan pernyataan lagi di blok, kode dapat keluar dari blok dengan menggunakan pernyataan Exit Select
. Ini akan mentransfer kontrol segera ke pernyataan setelah End Select
.
Select Case
konstruksi dapat disarangkan. Setiap konstruksi Select Case
berlapis harus memiliki pernyataan End Select
yang cocok dan harus benar-benar terkandung dalam satu blok pernyataan Case
atau Case Else
konstruksi Select Case
luar di mana lapisan berada.
Contoh
Contoh berikut menggunakan konstruksi Select Case
untuk menulis baris yang sesuai dengan nilai variabel number
. Pernyataan Case
kedua berisi nilai yang cocok dengan nilai number
saat ini, sehingga pernyataan yang menulis "Antara 6 dan 8, inklusif" dijalankan.
Dim number As Integer = 8
Select Case number
Case 1 To 5
Debug.WriteLine("Between 1 and 5, inclusive")
' The following is the only Case clause that evaluates to True.
Case 6, 7, 8
Debug.WriteLine("Between 6 and 8, inclusive")
Case 9 To 10
Debug.WriteLine("Equal to 9 or 10")
Case Else
Debug.WriteLine("Not between 1 and 10, inclusive")
End Select