Select...Case Deyimi (Visual Basic)
İfadenin 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. Ifa -de. Temel veri türlerinden birini (Boolean , , , Char , Date , Double , Decimal , , Integer , Long , Object , SByte , Short Single , String , , UInteger ULong ve UShort ) değerlendirmelidirByte . |
expressionlist |
Deyiminde Case gereklidir. için testexpression eşleşme değerlerini temsil eden ifade yan tümcelerinin listesi. Birden çok ifade yan tümcesi virgülle ayrılır. Her yan tümce aşağıdaki formlardan birini alabilir:- ifade1 To ifade2- [ Is ] comparisonoperatorexpression- Ifa -de To için bir eşleşme değerleri aralığının sınırlarını belirtmek için testexpression anahtar sözcüğünü kullanın. değerinin expression1 değerinden expression2 küçük veya değerine eşit olması gerekir.Is için eşleştirme değerleri testexpression üzerinde bir kısıtlama belirtmek için anahtar sözcüğünü karşılaştırma işleciyle (= , < <> , , <= , > veya >= ) kullanın. Anahtar sözcük sağlanmazsa Is , karşılaştırmaoperatörden önce otomatik olarak eklenir.Yalnızca expression belirten form, karşılaştırma çalıştırıcısınınIs eşittir işareti (= ) olduğu formun özel bir durumu olarak kabul edilir. Bu form olarak testexpression = expression değerlendirilir.içindeki expressionlist ifadeler, türüne örtük olarak dönüştürülebilir olmaları ve birlikte kullanıldığı iki tür için uygun comparisonoperator olması koşuluyla herhangi bir veri türünde testexpression olabilir. |
statements |
İsteğe bağlı. içindeki herhangi bir yan tümceyle eşleşiyorsa testexpression aşağıdaki bir veya daha fazla deyim Case çalıştırılırexpressionlist . |
elsestatements |
İsteğe bağlı. Aşağıdaki bir veya daha fazla deyimCase Else , deyiminin herhangi bir yan tümcesi expressionlist Case ile eşleşmiyorsa çalışırtestexpression . |
End Select |
...Case yapı tanımını Select sonlandırır. |
Açıklamalar
Herhangi bir Case
expressionlist
yan tümceyle eşleşirsetestexpression
, bu deyimi izleyen Case
deyimler sonraki Case
, Case Else
veya End Select
deyimine kadar çalışır. Denetim daha sonra aşağıdaki End Select
deyimine geçer. Birden Case
fazla yan tümcedeki bir expressionlist
yan tümceyle eşleşiyorsatestexpression
, yalnızca ilk eşleşmeyi izleyen deyimler çalıştırılır.
deyimiCase Else
, diğer Case
deyimlerden herhangi birinde ve yan tümcesi arasında testexpression
bir expressionlist
eşleşme bulunamazsa komutunu çalıştırmak üzere tanıtmak elsestatements
için kullanılır. Gerekli olmasa da, öngörülemeyen testexpression
değerleri işlemek için yapınızda Select Case
bir ifade olması iyi bir Case Else
fikirdir. Hiçbir Case
expressionlist
yan tümce eşleşmezse testexpression
ve deyimi yoksa Case Else
, denetim aşağıdaki End Select
deyimine geçer.
Her Case
yan tümcede birden çok ifade veya aralık kullanabilirsiniz. Örneğin, aşağıdaki satır geçerlidir.
Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber
Not
ve deyimlerinde Case
kullanılan anahtar sözcük, nesne başvurusu karşılaştırması için kullanılan Is İşleci ile aynı değildir.Case Else
Is
Karakter dizeleri için aralıklar ve birden çok ifade belirtebilirsiniz. Aşağıdaki örnekte, Case
tam olarak "elmalar" ile eşit olan herhangi bir dizeyle eşleşir, alfabetik sırada "fındık" ile "çorba" arasında bir değere sahiptir veya geçerli değeriyle testItem
tam olarak aynı değeri içerir.
Case "apples", "nuts" To "soup", testItem
ayarı Option Compare
dize karşılaştırmalarını etkileyebilir. altında Option Compare Text
, "Apples" ve "apples" dizeleri eşit olarak karşılaştırır, ancak altında Option Compare Binary
karşılaştırılmaz.
Not
Birden çok yan tümcesine sahip bir Case
deyim kısa devre olarak bilinen davranışlar sergileyebilir. Visual Basic yan tümceleri soldan sağa değerlendirir ve biri ile testexpression
eşleşme oluşturursa, kalan yan tümceler değerlendirilmez. Kısa devre performansı artırabilir, ancak içindeki her ifadenin expressionlist
değerlendirilmesini bekliyorsanız beklenmeyen sonuçlara neden olabilir. Kısa devre oluşturma hakkında daha fazla bilgi için bkz. Boole İfadeleri.
Bir Case
veya Case Else
deyimi bloğundaki kodun bloktaki deyimlerden herhangi birini çalıştırması gerekmiyorsa, deyimini Exit Select
kullanarak bloğundan çıkabilirsiniz. Bu, denetimi hemen aşağıdaki End Select
deyimine aktarır.
Select Case
inşaatlar iç içe olabilir. İç içe yerleştirilmiş Select Case
her yapıda eşleşen End Select
bir deyim bulunmalıdır ve tamamen iç içe yerleştirildiği dış Select Case
yapıdaki tek Case
veya Case Else
deyim bloğu içinde bulunmalıdır.
Örnek
Aşağıdaki örnek, değişkeninin number
değerine karşılık gelen bir satır yazmak için bir Select Case
yapı kullanır. İkinci Case
deyim geçerli değeriyle eşleşen değeri number
içerir, bu nedenle "6 ile 8 arasında, dahil" yazan deyimi ç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