Select...Case Deyimi (Visual Basic)
Bir ifadenin değerine bağlı olarak çeşitli deyim gruplarından birini çalıştırır.
Syntax
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
Bölümler
| Süre | Tanım |
|---|---|
testexpression |
Gereklidir. İfadesini. Tek bir veri türü ( Boolean , Byte ,,,, Char Date Double Decimal , Integer , Long , Object , SByte , Short , Single , String , UInteger , ULong , ve UShort ) olarak değerlendirilmelidir |
expressionlist |
Bir bildirimde gereklidir Case . İçin eşleşme değerlerini temsil eden ifade yan tümceleri listesi testexpression . Birden çok ifade yan tümceleri virgüller ile ayrılmıştır. Her yan tümce aşağıdaki formlardan birini alabilir:- İfade1 To İfade2-[ Is ] ComparisonOperator ifadesi- ifadesini Toİçin bir eşleşme değerleri aralığının sınırlarını belirtmek için anahtar sözcüğünü kullanın testexpression . Değeri değerine expression1 eşit veya ondan küçük olmalıdır expression2 .Is = <> < <= > >= Eşleştirme değerlerinde bir kısıtlama belirtmek için bir karşılaştırma işleci (,,,,, veya) ile anahtar sözcüğünü kullanın testexpression . IsAnahtar sözcüğü sağlanmazsa, ComparisonOperator öğesinden önce otomatik olarak eklenir.Yalnızca belirten form, expression Is ComparisonOperator 'in eşittir işareti () olduğu formun özel durumu olarak değerlendirilir = . Bu form olarak değerlendirilir testexpression = expression .İçindeki ifadeler expressionlist herhangi bir veri türünde olabilir, bu, türüne örtülü olarak dönüştürülebilir testexpression ve uygun olan comparisonoperator iki tür için geçerlidir. |
statements |
İsteğe bağlı. Case testexpression ' Deki herhangi bir yan tümcesiyle eşleşiyorsa, çalıştıran bir veya daha fazla deyim expressionlist . |
elsestatements |
İsteğe bağlı. Bir veya daha fazla deyimi, hiçbir Case Else testexpression deyimin içindeki herhangi bir yan tümce ile eşleşmezse çalışır expressionlist Case . |
End Select |
Select... Oluşturma tanımını sonlandırır Case . |
Açıklamalar
testexpressionAny Case expressionlist yan tümcesiyle eşleşirse, bu Case deyimden sonraki deyimler Next Case , Case Else , veya deyimi ile çalışır End Select . Sonra Denetim aşağıdaki ifadeye geçer End Select . Birden testexpression expressionlist fazla yan tümcedeki bir yan tümcesiyle eşleşiyorsa Case , yalnızca ilk eşleşmeyi izleyen deyimler çalıştırılır.
Case ElseDeyimi, elsestatements testexpression expressionlist diğer deyimlerden herhangi birinde ve yan tümcesi arasında eşleşme bulunmazsa çalıştırmak için öğesini tanıtmak için kullanılır Case . Gerekli olmasa da, Case Else Select Case öngörülenmeyen değerleri işlemek için oluşturma konusunda bir ifadeye sahip olmak iyi bir fikirdir testexpression . Hiçbir Case expressionlist yan tümce eşleşmez testexpression ve hiçbir deyimi yoksa Case Else , Denetim aşağıdaki deyime geçer End Select .
Her bir yan tümcesinde birden çok ifade veya Aralık kullanabilirsiniz Case . Örneğin, aşağıdaki satır geçerlidir.
Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber
Not
IsVe deyimlerde kullanılan anahtar sözcük, Case Case Else nesne başvuru karşılaştırması Için kullanılan , işleç işleciile aynı değildir.
Karakter dizeleri için aralıklar ve birden çok ifade belirtebilirsiniz. Aşağıdaki örnekte, Case "elmalar" ile tam olarak eşit olan herhangi bir dizeyle eşleşir, alfabetik düzende "nut" ve "Soup" arasında bir değere sahiptir veya geçerli değeri ile tam olarak aynı değeri içerir testItem .
Case "apples", "nuts" To "soup", testItem
Ayarı, Option Compare dize karşılaştırmaları etkileyebilir. Altında Option Compare Text , "elmalar" ve "elmalar" dizeleri eşit olarak karşılaştırılır, ancak altında Option Compare Binary değildir.
Not
CaseBirden çok yan tümcesini içeren bir ifade, kısa devre dışı olarak bilinen davranışları ortaya kaydedebilir. Visual Basic yan tümceleri soldan sağa değerlendirir ve biri ile eşleşme üretiyorsa testexpression , kalan yan tümceler değerlendirilmez. Kısa devre, performansı iyileştirebilir, ancak içindeki her ifadenin değerlendirilmesi bekleniyorsa beklenmeyen sonuçlar üretebilir expressionlist . Kısa devre dışı hakkında daha fazla bilgi için bkz. Boolean ifadeleri.
Bir Case veya Case Else deyim bloğundaki kodun bloğunda daha fazla deyim çalıştırması gerekmiyorsa, deyimi kullanılarak bloğundan çıkabilir Exit Select . Bu, denetimi izleyen deyime hemen aktarır End Select .
Select Case kurulumlarını iç içe olabilir. İç içe yerleştirilmiş her Select Case oluşturma bir eşleşen End Select deyime sahip olmalı ve Case Case Else Select Case içinde iç içe olduğu dış oluşturma işleminin tek veya ifade bloğunda tamamen yer almalıdır.
Örnek
Aşağıdaki örnek, Select Case değişkeninin değerine karşılık gelen bir satırı yazmak için bir oluşturma kullanır number . İkinci Case ifade, geçerli değeri ile eşleşen değeri içerir number , bu nedenle "6 Ile 8 arasında", dahil "yazan bir ifade çalışır.
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