Sdílet prostřednictvím


Select...Case – příkaz (Visual Basic)

Je spuštěn jeden z příkazů v závislosti na hodnotě výrazu několik skupin.

Select [ Case ] testexpression
    [ Case expressionlist
        [ statements ] ]
    [ Case Else
        [ elsestatements ] ]
End Select

Části

Termín

Definice

testexpression

Povinné.Výraz.Must evaluate to one of the elementary data types (Boolean, Byte, Char, Date, Double, Decimal, Integer, Long, Object, SByte, Short, Single, String, UInteger, ULong, and UShort).

expressionlist

V Case prohlášení.Seznam klauzulí výraz představující hodnoty odpovídající testexpression.Více klauzulí výrazu jsou odděleny čárkami.Každé klauzule provést jednu z následujících forem:

  • Výraz1 To Výraz2

  • IsPorovnávací operátorvýraz 

  • výraz

Použití To klíčové slovo určit hranice oblasti odpovídající hodnoty testexpression.Hodnota expression1 musí být menší než hodnota expression2.

Použití Is klíčové slovo s operátorem porovnání (=, <>, <, <=, >, nebo >=) určit odpovídající hodnoty pro omezení testexpression.Pokud Is klíčové slovo není zadán, je automaticky vložena před Porovnávací operátor.

Formulář zadání pouze expression je považován za zvláštní případ Is formulář, kde Porovnávací operátor je znak rovná se (=).Tento formulář je vyhodnocena jako testexpression = expression.

Výrazy v expressionlist může být datový typ, pokud jsou implicitně převést na typ testexpression a odpovídající comparisonoperator je platný pro dva typy je používán s.

statements

Nepovinné.Jeden nebo více následujících příkazech Case spuštění Pokud testexpression odpovídá doložky v expressionlist.

elsestatements

Nepovinné.Jeden nebo více následujících příkazů Case Else spuštění Pokud testexpression neodpovídá doložky v expressionlist žádného Case příkazy.

End Select

Ukončí definice Select...Case konstrukci.

Poznámky

Pokud testexpression odpovídá některému Caseexpressionlist klauzule, příkazy po Case příkaz spustit na další Case, Case Else, nebo End Select prohlášení. Poté řízení průchodů následující prohlášení End Select.Pokud testexpression odpovídá expressionlist klauzule ve více Case spustit pouze příkazy po první vyhovující klauzuli.

Case Else Použití příkazu zavést elsestatements spustit, pokud je nalezena žádná shoda mezi testexpression a expressionlist klauzule ve všech ostatních Case příkazy.Přestože není vyžadováno, je vhodné mít Case Else prohlášení v vaše Select Case konstrukci zpracování nepředvídaných testexpression hodnoty.Pokud ne Caseexpressionlist odpovídá klauzuli testexpression a není žádný Case Else prohlášení řízení průchodů následující prohlášení End Select. 

Lze použít více výrazů nebo rozsahů v každém Case klauzule.Například následující řádek je platný.

Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber

[!POZNÁMKA]

Is Klíčové slovo použité v Case a Case Else prohlášení není stejný jako Is – operátor (Visual Basic), který se používá pro srovnání odkaz na objekt.

Můžete určit rozsah a více výrazů pro řetězce znaků.V následujícím příkladu Case odpovídá řetězec se přesně shoduje s "jablka", má hodnotu mezi "nuts" a "polévky, která" v abecedním pořadí nebo obsahuje přesně stejná hodnota jako aktuální hodnotu testItem.

Case "apples", "nuts" To "soup", testItem

Nastavení Option Compare mohou ovlivnit porovnávání řetězců.Pod Option Compare Text, jako rovná, ale v porovnání řetězců "Jablka" a "jablka" Option Compare Binary, ne.

[!POZNÁMKA]

A Case prohlášení s více klauzulí můžete projevuje chování, které jsou známé jako nesmídojít ke zkratu.Visual Basic vyhodnotí klauzule zleva doprava a pokud vznikne shoda s testexpression, zbývající ustanovení nebudou vyhodnoceny.Nesmídojít ke zkratu může zlepšit výkon, ale může způsobit neočekávaný výsledek, pokud očekáváte každý výraz v expressionlist k vyhodnocení.Další informace o nesmídojít ke zkratu, viz Výrazy logických hodnot (Visual Basic).

Pokud kód do Case nebo Case Else bloku není nutné spustit žádné další výkazů v bloku, blok je možné ukončit pomocí Exit Select prohlášení.Tento předá řízení bezprostředně následující prohlášení End Select.

Select Casestaveb, mohou být vnořené.Každý vnořený Select Case konstrukci musí mít odpovídající End Select prohlášení a musí být zcela obsaženy v jednom Case nebo Case Else bloku vnější Select Case konstrukce, ve které je vnořen.

Příklad

V následujícím příkladu Select Case konstrukci zapisovat řádek odpovídající hodnotě proměnné number.Druhý Case výpis obsahuje hodnotu, která odpovídá aktuální hodnota number, takže prohlášení, zapíše "mezi 6 a 8, včetně" spustí.

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

Viz také

Referenční dokumentace

Choose

End – příkaz

If...Then...Else – příkaz (Visual Basic)

Option Compare – příkaz

Exit – příkaz (Visual Basic)