이중적분 예제

대안에는 대문자 문에 나타나는 식과 동일한 형식이어야 하는 여러 선택 항목(예 2)이 포함될 수 있습니다. 각 식에 대해 하나 이상의 로컬 정적 선택이 있어야 합니다. 각 선택 항목의 값은 고유해야 합니다(값 중복은 허용되지 않음). 스위치 섹션의 명령문 목록의 끝점에 도달할 수 있는 경우 컴파일 타임 오류가 발생합니다. 이를 „넘어지지 않는” 규칙이라고 합니다. 예 A 선택 항목은 단순 이름(예 1), 단순 요소 이름(예 2) 또는 불연속 범위(조각, 예제 3)일 수 있습니다. 선택 유형을 혼합할 수 있습니다. 예를 들어 알려진 범위의 값을 빠르게 테스트하여 소수인지 확인한다고 가정해 보겠습니다. 코드가 낭비되는 계산을 하지 않도록 하고 온라인으로 원하는 범위의 소수 목록을 찾을 수 있습니다. 대규모 switch 문을 사용하여 각 값을 알려진 소수와 비교할 수 있습니다. 그러나 실제 데이터 또는 예제 데이터를 사용하여 타이밍 테스트를 실행하고 영향이 있는지 확인할 수 있습니다. 결과에 case 문만 „하나” 일치만 표시하려면 어떻게 해야 합니까? 예를 들어 대/소식의 구문은 매우 유연하며 일부 약어를 허용합니다. 다음 예제에서는 가장 일반적인 형식(소위 검색된 사례)의 구문을 보여 주습니다.

다른 변형은 검색된 사례로 작성할 수 있는 약어입니다. 또한 검색된 대/소문자는 거의 모든 SQL 데이터베이스에서 작동합니다. 이러한 관점에서 검색된 사례는 절대적으로 기억해야 할 유일한 대/소문자 구문이라고 말할 수 있습니다. 놀라운 부작용을 일으킬 수 있는 한 가지 일반적인 예는 다음과 같은 것입니다. 이는 컴파일 중에 상수 식(예: 1/3)을 해결하는 컴파일러와 매우 유사하며 런타임시 결과를 계산하는 코드를 생성합니다. 이 최적화가 사례 식의 일부에 영향을 주면 평가 순서가 방해를 받습니다. 여기에 새로운 기능 가져온 문이 이전 명령보다 더 강력하고 우아한 어떻게 의 예입니다. 이 문제는 또한 CASE 표현식에 한정되지 않는다; 동일한 기본 의미 체계를 사용하는 다른 기본 제공 함수와 유사한 동작을 볼 수 있습니다. 예를 들어 SELECT는 보다 정교하게 검색된 CASE 식에 대한 구문 설탕일 뿐이며, 이는 때때로 NULL을 생성합니다.

C#에서는 이 구문을 사용할 수 없습니다. 대신 첫 번째 예제의 구문을 사용해야 합니다. 다른 평가 절차가 동일한 결과를 생성해야 하더라도, 다른 절차는 다른 부작용을 일으킬 수 있습니다.