>웹 프론트엔드 >JS 튜토리얼 >보다 큼/보다 작음 쿼리에 Switch 문을 사용할 수 있습니까?

보다 큼/보다 작음 쿼리에 Switch 문을 사용할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-27 10:34:30832검색

 Can You Use a Switch Statement for Greater-Than/Less-Than Queries?

보다 큼/보다 작음 쿼리에 대한 스위치 문

프로그래밍에서는 보다 큼(>) 또는 보다 작음을 사용하여 값을 비교해야 하는 경우가 많습니다. (<) 연산자. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.