Selecteren... Case-instructie (Visual Basic)
Voert een van de verschillende groepen instructies uit, afhankelijk van de waarde van een expressie.
Syntaxis
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
generator
Term | Definitie |
---|---|
testexpression |
Vereist. Uitdrukking. Moet een van de elementaire gegevenstypen evalueren (Boolean , Byte , , Char , Date , Double , Integer Object Single SByte Long Decimal String UInteger Short , en ).UShort ULong |
expressionlist |
Vereist in een Case instructie. Lijst met expressieclausules die overeenkomende waarden voor testexpression . Meerdere expressiecomponenten worden gescheiden door komma's. Elke component kan een van de volgende vormen aannemen:- expressie1 To expressie2- [ Is ] vergelijkingsoperatorexpressie - uitdrukking Gebruik het To trefwoord om de grenzen van een bereik met overeenkomende waarden voor testexpression op te geven. De waarde van expression1 moet kleiner dan of gelijk zijn aan de waarde van expression2 .Gebruik het Is trefwoord met een vergelijkingsoperator (= , <> , < , <= of > >= ) om een beperking op te geven voor de overeenkomstwaarden voor testexpression . Als het Is trefwoord niet wordt opgegeven, wordt het automatisch ingevoegd voor vergelijkingsoperator.Het formulier dat alleen expression opgeeft, wordt behandeld als een speciaal geval van het Is formulier waarbij vergelijkingsoperator het gelijkteken (= ) is. Dit formulier wordt geëvalueerd als testexpression = expression .De expressies in expressionlist kunnen van elk gegevenstype zijn, mits ze impliciet worden omgezet in het type testexpression en de juiste comparisonoperator geldig is voor de twee typen waarmee het wordt gebruikt. |
statements |
Optioneel. Een of meer instructies die worden Case uitgevoerd als testexpression deze overeenkomen met een component in expressionlist . |
elsestatements |
Optioneel. Een of meer instructies die volgen Case Else die worden uitgevoerd als testexpression deze niet overeenkomen met een component in een expressionlist van de Case instructies. |
End Select |
Hiermee wordt de definitie van de Select ...Case constructie beëindigd. |
Opmerkingen
Als testexpression
er een Case
expressionlist
component overeenkomt, worden de instructies die volgen op die Case
instructie uitgevoerd tot de volgende Case
, Case Else
of End Select
instructie. Control geeft vervolgens de volgende End Select
instructie door. Als testexpression
deze overeenkomt met een expressionlist
component in meer dan één Case
component, worden alleen de instructies na de eerste overeenkomstuitvoering uitgevoerd.
De Case Else
instructie wordt gebruikt om de elsestatements
uitvoering te introduceren als er geen overeenkomst wordt gevonden tussen de testexpression
en een expressionlist
component in een van de andere Case
instructies. Hoewel dit niet vereist is, is het een goed idee om een Case Else
verklaring in uw Select Case
constructie te hebben om onvoorziene testexpression
waarden af te handelen. Als er geen Case
expressionlist
component overeenkomt testexpression
en er geen Case Else
instructie is, wordt het besturingselement doorgegeven aan de volgende End Select
instructie.
U kunt in elke Case
component meerdere expressies of bereiken gebruiken. De volgende regel is bijvoorbeeld geldig.
Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber
Notitie
Het Is
trefwoord dat in de Case
en Case Else
instructies wordt gebruikt, is niet hetzelfde als de is-operator, die wordt gebruikt voor objectverwijzing.
U kunt bereiken en meerdere expressies opgeven voor tekenreeksen. In het volgende voorbeeld Case
komt elke tekenreeks overeen die exact gelijk is aan "appels", heeft een waarde tussen "noten" en "soep" in alfabetische volgorde, of bevat exact dezelfde waarde als de huidige waarde van testItem
.
Case "apples", "nuts" To "soup", testItem
De instelling kan Option Compare
van invloed zijn op tekenreeksvergelijkingen. Onder Option Compare Text
, de tekenreeksen "Apples" en "appels" vergelijken als gelijk, maar onder Option Compare Binary
, ze niet.
Notitie
Een Case
instructie met meerdere componenten kan gedrag vertonen dat bekend staat als kortsluiting. Visual Basic evalueert de componenten van links naar rechts en als er een overeenkomst met testexpression
wordt geproduceerd, worden de resterende componenten niet geëvalueerd. Kortsluiting kan de prestaties verbeteren, maar kan onverwachte resultaten opleveren als u verwacht dat elke expressie expressionlist
wordt geëvalueerd. Zie Boole-expressies voor meer informatie over kortsluiting.
Als de code in een Case
of Case Else
instructieblok niet meer van de instructies in het blok hoeft uit te voeren, kan het blok worden afgesloten met behulp van de Exit Select
instructie. Hiermee wordt het besturingselement onmiddellijk overgedragen naar de volgende End Select
instructie.
Select Case
constructies kunnen worden genest. Elke geneste constructie moet een overeenkomende End Select
Select Case
instructie hebben en moet volledig zijn opgenomen in één Case
of Case Else
instructieblok van de buitenste Select Case
constructie waarin deze is genest.
Opmerking
In het volgende voorbeeld wordt een Select Case
constructie gebruikt om een lijn te schrijven die overeenkomt met de waarde van de variabele number
. De tweede Case
instructie bevat de waarde die overeenkomt met de huidige waarde van number
, dus de instructie die 'Tussen 6 en 8, inclusief' schrijft, wordt uitgevoerd.
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