Select...Case Deyimi (Visual Basic)
İfadenin değerine bağlı olarak birkaç deyim grubundan birini çalıştırır.
Sözdizimi
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
Parça
Süre | Tanım |
---|---|
testexpression |
Gerekli. İfade. Temel veri türlerinden birini (Boolean , , , Char , Date , Double , , Decimal , Integer Short Single SByte Object Long , , String , UInteger ve UShort ULong ) değerlendirmelidir. Byte |
expressionlist |
Bir Case deyimde 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 ] karşılaştırmaoperator ifadesi- ifade 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.için eşleşme değerleri üzerinde Is bir kısıtlama belirtmek için anahtar sözcüğünü karşılaştırma işleciyle (= , <> < , , <= , > veya >= ) testexpression kullanın. Anahtar sözcük sağlanmazsaIs , karşılaştırmaoperatörden önce otomatik olarak eklenir.Yalnızca expression belirten form, karşılaştırma çalıştırıcısının Is eşittir işareti (= ) olduğu formun özel bir durumu olarak değerlendirilir. Bu form olarak testexpression = expression değerlendirilir.içindeki expressionlist ifadeler, türüne örtük olarak dönüştürülebilir testexpression olması ve uygun comparisonoperator olanın kullanıldığı iki tür için geçerli olması koşuluyla herhangi bir veri türünde olabilir. |
statements |
isteğ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 |
isteğ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 inşaatının Select tanımını 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 expressionlist
yan tümcesi arasında testexpression
eşleşme bulunmazsa komutunu çalıştırmak için kullanılırelsestatements
. Gerekli olmasa da, öngörülemeyen testexpression
değerleri işlemek için yapınızda Select Case
bir deyim olması iyi bir Case Else
fikirdir. Yan Case
expressionlist
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
Is
ve Case Else
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.
Karakter dizeleri için aralıklar ve birden çok ifade belirtebilirsiniz. Aşağıdaki örnekte, Case
"elma" ile tam olarak eşit olan, alfabetik sırada "fındık" ile "çorba" arasında bir değere sahip olan veya geçerli değeriyle tam olarak aynı değeri testItem
içeren herhangi bir dizeyle eşleşir.
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ırmaz.
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 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
yapılar iç içe yerleştirilebilir. İç 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 yer almalı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