猿问
下载APP

表达式在switch case语句中

表达式在switch case语句中

我正在尝试创建一个switch语句但我似乎无法使用得到评估的表达式(而不是设置字符串/整数)。我可以使用if语句轻松完成此操作,但希望案例更快。

我正在尝试以下方法

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;
    }}

我错过了一些明显的东西,或者这是不可能的?谷歌在这种情况下并不友善。


HUWWW
浏览 38回答 3
3回答

当年话下

你可以随时做switch&nbsp;(true)&nbsp;{ &nbsp;&nbsp;case&nbsp;(amount&nbsp;>=&nbsp;7500&nbsp;&&&nbsp;amount&nbsp;<&nbsp;10000): &nbsp;&nbsp;&nbsp;&nbsp;//code &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;case&nbsp;(amount&nbsp;>=&nbsp;10000&nbsp;&&&nbsp;amount&nbsp;<&nbsp;15000): &nbsp;&nbsp;&nbsp;&nbsp;//code &nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;//etc...它的工作原理是因为它true是一个常量,所以将执行第一个case语句下的代码,其表达式的计算结果为true。我觉得这有点“棘手”,但我觉得使用它并没有错。一个简单的if/else陈述可能会更简洁,你不必担心意外跌倒。但无论如何它仍然存在。

慕码人8056858

&nbsp;switch (true)会Weird condition在jsLint中给你一个错误,所以如果这是一个问题,让我们更有创意,而且,我认为,增加可读性。因此,我们不能评估如果每个case为true或false;&nbsp;我们正在比较它case的价值是否等于我们的switch期限。因此,如果条件为真,if我们可以通过在我们的case语句中添加简写并返回原始切换项来利用它。我还包括一个真实世界的例子,你想要有两个“默认值” - 如果你的术语在正面方向上超出你的“重要”范围,那么就是一个,如果你处于负面,则另一个方向。关键词:&nbsp;case (x > 0 ? x : null):“如果我的任期,x大于零,则返回x以便x === x我接受案例分支。”http://jsfiddle.net/rufwork/upGH6/1//*global&nbsp;document*//*jslint&nbsp;evil:true*/var&nbsp;x&nbsp;=&nbsp;10;switch&nbsp;(x)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;(x&nbsp;>&nbsp;0&nbsp;?&nbsp;x&nbsp;:&nbsp;null): &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write('ha&nbsp;ha&nbsp;ha!&nbsp;&nbsp;I&nbsp;fooled&nbsp;switch&nbsp;AND&nbsp;jsLint!&nbsp;&nbsp;Muhahahahaha!'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;0: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write('zero&nbsp;is&nbsp;nothing.'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;-1: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write('low'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;-2: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write('lower'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;-3:&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write('lowest&nbsp;I&nbsp;care&nbsp;about'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;&nbsp;&nbsp;default:&nbsp;//&nbsp;anything&nbsp;lower&nbsp;than&nbsp;-3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.write('TOO&nbsp;LOW!!!!&nbsp;(unless&nbsp;you&nbsp;cheated&nbsp;and&nbsp;didn\'t&nbsp;use&nbsp;an&nbsp;int)');}document.write('<br>done.');

慕田峪7331174

这不是一个switch块如何工作。所述case用于保持一个单一的值,如果它们是相等的值switch线。if-else陈述将很好地为您服务。以下是有关该switch块的一些信息。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答