c# switch문 예제

스위치 문에서 중단 대신 goto 문을 사용할 수도 있습니다. 일반적으로 break 문을 사용하여 switch 문을 종료합니다. 그러나 경우에 따라 기본 문을 실행해야 하므로 goto 문을 사용합니다. switch 문에서 기본 조건을 실행할 수 있습니다. goto 문은 C# 프로그램의 레이블이 지정된 위치로 이동하는 데도 사용됩니다. 기본 사례는 match 식이 다른 사례 레이블과 일치하지 않는 경우 실행할 스위치 섹션을 지정합니다. 기본 케이스가 없고 일치 식이 다른 대/소문자 레이블과 일치하지 않으면 프로그램 흐름이 switch 문을 통과합니다. 다음 예제에서는 기본 Shape 클래스, Shape에서 파생된 사각형 클래스 및 사각형에서 파생되는 사각형 클래스를 정의합니다. when 절을 사용 하 여 ShowShapeInfo 사각형 개체를 Square 개체로 인스턴스화 되지 않은 경우에 동일한 길이 및 너비를 사각형으로 처리 합니다. 메서드는 null 개체 또는 영역이 0인 셰이프에 대한 정보를 표시하려고 시도하지 않습니다. 기본 대/소문자는 switch 문의 순서에 따라 나타날 수 있습니다. 소스 코드의 순서에 관계없이 모든 대/소문자 레이블이 평가된 후에는 항상 마지막으로 평가됩니다.

일치 식과 일치하는 대/소문자 레이블이 있는 스위치 섹션의 명령문 목록 실행은 첫 번째 문으로 시작하여 일반적으로 휴식, goto 대/소문자, goto 레이블, 반환 또는 throw와 같은 점프 문이 될 때까지 문 목록을 통해 진행됩니다. 도달합니다. 이 때 제어는 switch 문 외부 또는 다른 케이스 레이블로 전송됩니다. goto 문이 사용되는 경우 컨트롤을 상수 레이블로 전송해야 합니다. 이러한 제한은 컨트롤을 비상수 레이블로 전송하려고 하면 바람직하지 않은 부작용이 있을 수 있으며, 이러한 경우 컨트롤을 코드의 의도하지 않은 위치로 전송하거나 무한 루프를 만들 수 있습니다. 스위치 내에서 원하는 수의 대/소문자 문을 가질 수 있습니다. 각 케이스 뒤에는 비교할 값과 콜론이 뒤따릅니다. 다음 예제에서는 상호 배타적이지 않은 다양한 패턴을 사용하는 switch 문을 보여 줍니다. 대/소문자 0: switch 섹션을 이동하여 더 이상 switch 문의 첫 번째 섹션이 아니므로 값이 0인 정수는 대/소문자 int val 문에 의해 정의된 패턴인 모든 정수의 하위 집합이기 때문에 C#은 컴파일러 오류를 생성합니다.