>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 Switch Case 문에서 표현식을 사용할 수 있습니까?

JavaScript의 Switch Case 문에서 표현식을 사용할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-31 20:27:02203검색

Can You Use Expressions in Switch Case Statements in JavaScript?

Switch Case 문의 표현식 평가

프로그래밍에서 switch 문을 작성할 때 Case 절 내에서 표현식을 활용하고 싶은 상황이 발생할 수 있습니다. 고정된 값 대신. if 문이 그러한 표현식을 쉽게 수용하는 반면, 그러한 시나리오에서는 switch 문의 잠재적인 효율성에 대한 우려가 발생합니다.

다음 JavaScript 코드를 고려하세요.

<code class="javascript">function reward(amount) {
    var $reward = $("#reward");
    switch (amount) {
        case (amount >= 7500 && amount < 10000):
            $reward.text("Play Station 3");
            break;
        case (amount >= 10000 && amount < 15000):
            $reward.text("XBOX 360");
            break;
        case (amount >= 15000):
            $reward.text("iMac");
            break;
        default:
            $reward.text("No reward");
            break;
    }
}</code>

이 예에서는 평가를 시도합니다. Case 절 내의 표현. 그러나 표현식은 부울 값만 산출하는 반면 비교하는 금액 값은 숫자이기 때문에 문제가 발생합니다. 이러한 불일치로 인해 Case 절이 올바르게 실행되지 않습니다.

한 가지 실행 가능한 해결책은 대체 구문을 사용하는 것입니다.

<code class="javascript">switch (true) {
  case (amount >= 7500 && amount < 10000):
    // Code
    break;
  case (amount >= 10000 && amount < 15000):
    // Code
    break;
  // etc.
}</code>

실제 식별자를 도입하여 표현식 평가를 비교로 효과적으로 변환합니다. 부울은 true입니다. Case 절의 표현식이 true로 평가되면 해당 절 내의 코드가 실행됩니다.

이 기술은 약간 특이한 것처럼 보이지만 Case 절의 표현식을 직접 비교할 때 발생하는 제한 사항을 우회합니다. 결과적으로, switch 문의 효율성 이점을 유지하면서 원하는 동작을 달성할 수 있습니다.

위 내용은 JavaScript의 Switch Case 문에서 표현식을 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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