Select...Case 문(Visual Basic)
식의 값에 따라 여러 문 그룹 중 하나를 실행합니다.
구문
Select [ Case ] testexpression
[ Case expressionlist
[ statements ] ]
[ Case Else
[ elsestatements ] ]
End Select
부분
용어 | 정의 |
---|---|
testexpression |
필수입니다. 식 기본 데이터 형식(Boolean , Byte , Char , Date , Double , Decimal , Integer , Long , Object , SByte , Short , Single , String , UInteger , ULong , UShort ) 중 하나로 평가해야 합니다. |
expressionlist |
Case 문에 필요합니다. testexpression 에 대한 일치 값을 나타내는 식 절 목록입니다. 여러 개의 식 절은 쉼표로 구분됩니다. 각 절은 다음 형식 중 하나를 사용할 수 있습니다.- expression1 To expression2- [ Is ] comparisonoperator 식- expression To 키워드를 사용하여 testexpression 에 대한 일치 값 범위의 경계를 지정합니다. expression1 의 값은 expression2 의 값보다 작거나 같아야 합니다.testexpression 의 일치 값에 대한 제한을 지정하려면 비교 연산자(= , <> , < , <= , > 또는 >= )와 함께 Is 키워드를 사용하세요. Is 키워드가 제공되지 않으면 자동으로 comparisonoperator 앞에 삽입됩니다.expression 만 지정하는 형식은 comparisonoperator가 등호(= )인 Is 형식의 특수한 경우로 처리됩니다. 이 형식은 testexpression = expression 으로 평가됩니다.expressionlist 의 식은 암시적으로 testexpression 형식으로 변환 가능하고 적절한 comparisonoperator 가 함께 사용되는 두 형식에 대해 유효한 경우 어떤 데이터 형식이든 될 수 있습니다. |
statements |
선택 사항. testexpression 이 expressionlist 의 절과 일치하는 경우 실행되는 Case 다음에 오는 하나 이상의 문입니다. |
elsestatements |
선택 사항. testexpression 이 Case 문의 expressionlist 에 있는 절과 일치하지 않는 경우 실행되는 Case Else 다음에 오는 하나 이상의 문입니다. |
End Select |
Select ...Case 구성의 정의를 종료합니다. |
설명
testexpression
이 Case
expressionlist
절과 일치하는 경우 해당 Case
문 뒤의 문은 다음 Case
, Case Else
또는 End Select
문까지 실행됩니다. 그런 다음 제어는 End Select
다음의 문으로 전달됩니다. testexpression
이 둘 이상의 Case
절에서 expressionlist
절과 일치하는 경우 처음 일치 다음의 문만 실행됩니다.
Case Else
문은 다른 Case
문의 testexpression
과 expressionlist
절 사이에 일치가 없을 경우 실행할 elsestatements
를 도입하는 데 사용됩니다. 필수는 아니지만 예상치 못한 testexpression
값을 처리하기 위해 Select Case
구성에 Case Else
문을 포함하는 것이 좋습니다. testexpression
과 일치하는 Case
expressionlist
절이 없고 Case Else
문이 없으면 제어는 End Select
다음 문으로 전달됩니다.
각 Case
절에서 여러 식 또는 범위를 사용할 수 있습니다. 예를 들어 다음 줄을 사용할 수 있습니다.
Case 1 To 4, 7 To 9, 11, 13, Is > maxNumber
참고 항목
Case
및 Case Else
문에 사용되는 Is
키워드는 개체 참조 비교에 사용되는 Is 연산자와 동일하지 않습니다.
문자열에 대해 범위 및 여러 식을 지정할 수 있습니다. 다음 예에서 Case
는 "apples"와 정확히 같거나, 알파벳순으로 "nuts"와 "soup" 사이의 값이 있거나, testItem
의 현재 값과 정확히 동일한 값을 포함하는 모든 문자열과 일치합니다.
Case "apples", "nuts" To "soup", testItem
Option Compare
의 설정은 문자열 비교에 영향을 줄 수 있습니다. Option Compare Text
에서 문자열 "Apples"와 "apples"는 동일하게 비교되지만 Option Compare Binary
에서는 그렇지 않습니다.
참고 항목
여러 절이 있는 Case
문은 단락이라고 하는 동작을 보일 수 있습니다. Visual Basic은 왼쪽에서 오른쪽으로 절을 평가하며, testexpression
과 일치하는 항목이 생성되면 나머지 절은 평가되지 않습니다. 단락으로 인해 성능이 향상될 수 있지만 expressionlist
의 모든 식이 평가되어야 하는 경우 예상치 못한 결과가 발생할 수 있습니다. 단락에 대한 자세한 내용은 부울 식을 참조하세요.
Case
또는 Case Else
문 블록 내의 코드가 블록의 문을 더 이상 실행할 필요가 없는 경우 Exit Select
문을 사용하여 블록을 종료할 수 있습니다. 그러면 End Select
다음의 문으로 제어가 즉시 전달됩니다.
Select Case
구성은 중첩될 수 있습니다. 중첩된 각 Select Case
구성에는 일치하는 End Select
문이 있어야 하며 중첩된 외부 Select Case
구성의 단일 Case
또는 Case Else
문 블록 내에 완전히 포함되어야 합니다.
예시
다음 예에서는 Select Case
구성을 사용하여 변수 number
값에 해당하는 줄을 작성합니다. 두 번째 Case
문에 number
의 현재 값과 일치하는 값이 포함되어 있으므로 "Between 6 and 8, inclusive"라고 쓰인 문이 실행됩니다.
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
참고 항목
.NET