프로그래밍에서는 보다 큼(>) 또는 보다 작음을 사용하여 값을 비교해야 하는 경우가 많습니다. (<) 연산자. if 문이 이러한 비교를 처리할 수 있지만 더 효율적이고 우아한 접근 방식은 스위치 문을 사용하는 것입니다.
그러나 보다 큼/보다 작음 쿼리에 스위치 문을 사용하면 스위치 케이스에 정확한 일치가 필요하므로 문제가 발생합니다. . 범위나 간격을 단일 사례로 표현하는 것은 직접 지원되지 않습니다.
이러한 제한을 극복하고 switch 문의 효율성을 활용하려면 다음 옵션을 고려하세요.
switch (scrollLeft) { case (scrollLeft < 1000): // do stuff break; case (scrollLeft < 2000): // do stuff break; }
이 방법에는 각 경계 값에 대한 개별 사례를 만드는 작업이 포함되지만 여러 수준의 비교를 수용할 수는 없습니다.
const conditions = [ { from: 0, to: 1000 }, { from: 1000, to: 2000 }, ]; for (let i = 0; i < conditions.length; i++) { const condition = conditions[i]; if (scrollLeft < condition.from) break; if (scrollLeft < condition.to) { // do stuff for condition [i] break; } }
이 방법은 배열을 사용하여 조건을 저장합니다. 각 객체는 범위를 나타냅니다. 루프는 조건을 반복하고 필요한 비교를 수행합니다.
일부 환경에서는 범위 기반 비교를 지원하는 사용자 정의 스위치 문을 사용하는 것이 가능합니다. 예를 들어 Node.js에서는 다음과 같습니다.
switch (scrollLeft) { case ((scrollLeft < 1000) ? { from: 0, to: 1000 } : null): // do stuff break; case ((scrollLeft < 2000) ? { from: 1000, to: 2000 } : null): // do stuff break; }
최적의 솔루션은 비교 횟수 및 특정 환경 제약 조건과 같은 요소에 따라 달라집니다. 제공된 벤치마크 결과를 참조하여 선택하세요.
위 내용은 보다 큼/보다 작음 쿼리에 Switch 문을 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!