当前位置: 首页 > 面试题库 >

switch case语句中的表达式

蓟浩旷
2023-03-14
问题内容

我正在尝试创建一个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;
    }
}

我缺少明显的东西吗?Google在这种情况下并不友好。

任何帮助/指针表示赞赏


问题答案:

你总是可以做

switch (true) {
  case (amount >= 7500 && amount < 10000):
    //code
    break;
  case (amount >= 10000 && amount < 15000):
    //code
    break;

  //etc...

它之所以有效true是因为它是一个常量,因此将执行第一个case语句下带有计算结果为true的表达式的代码。

我猜这有点“棘手”,但我认为使用它没有错。一个简单的if/else声明可能会更简洁,并且您不必担心意外跌落。但是还是有。



 类似资料:
  • 尤达表达式 不要使用尤达表达式。尤达表达式是指,拿一个常量去和变量比较而不是拿变量去和常量比较。它就像是在表达 “蓝色是不是天空的颜色” 或者 “高个是不是这个男人的属性” 而不是 “天空是不是蓝的” 或者 “这个男人是不是高个子的” (译者注:名字起源于星球大战中尤达大师的讲话方式,总是用倒装的语序) 推荐: if ([myValue isEqual:@42]) { ... 不推荐: if ([

  • 我们在前面的小节中,已经学习了变量和运算符。有了这些前置知识,我们就可以学习表达式、语句和块了。 运算符可用于构建表达式,表达式可以进行值的计算,它是语句的核心组成部分;而语句是指令式编程语言中最小的独立元素;多条语句又可以组成语句块。本小节我们将学习表达式的概念和常用分类,也将了解到什么是语句和块。 1. 表达式 1.1 概念 表达式,是由数字、运算符、数字分组符号(括号)、自由变量和约束变量等

  • rust是一个基于表达式的语言,不过它也有语句。rust只有两种语句:声明语句和表达式语句,其他的都是表达式。基于表达式是函数式语言的一个重要特征,表达式总是返回值。 声明语句 rust的声明语句可以分为两种,一种为变量声明语句,另一种为Item声明语句。 变量声明语句。主要是指let语句,如: let a = 8; let b: Vec<f64> = Vec::new(); let (a, c)

  • 本节介绍SQL表达式语言的API引用。有关其用法的完整介绍,请参阅 SQL表达式语言教程(1.x API) . 列元素和表达式 列元素基础构造函数 列元素修饰符构造函数 列元素类文档 操作员参考 比较运算符 在比较中 在值列表中 表达式中为空 不在 表达式中的元组 子查询输入 身份比较 字符串比较 管柱密封 字符串匹配 字符串更改 算术运算符 使用连词和否定词 连接运算符 操作员自定义 可选择文件

  • 复杂的表达式 当你有一个复杂的 if 子句的时候,你应该把它们提取出来赋给一个 BOOL 变量,这样可以让逻辑更清楚,而且让每个子句的意义体现出来。 BOOL nameContainsSwift = [sessionName containsString:@"Swift"]; BOOL isCurrentYear = [sessionDateCompontents year] == 2

  • 运算符用于计算构建成了表达式(expressions),而表达式是语句(statements)的核心组成,而语句是组织形式为块(blocks)。 表达式 表达式是由变量、运算符以及方法调用所构成的结构,如下: int cadence = 0; anArray[0] = 100; System.out.println("Element 1 at index 0: " + anArray[0]); i