当前位置: 首页 > 知识库问答 >
问题:

switch语句中的值范围[重复]

蒋骏
2023-03-14

我试图理解switch语句。所以我已经解决了这个问题。“软件公司销售的软件包零售价为99美元。数量折扣如下:

10-19=20%
20-49=30%
50-99=40%
100或更多=50%

编写一个程序,要求用户输入购买的软件包数量。然后,程序应显示折扣金额(如果有)和折扣后的购买总额。

我使用if解决了它,否则如果结构和几个关系运算符,它看起来像这样

//Determine total price based on discounts
    if (x >= 10 && x <= 19)
    {
        total = (((x*99) - (x * 99)* .2));
        JOptionPane.showMessageDialog(null, "Your total is $" + total 
                + " with a 20% discount");
    }
    else if(x >= 20 && x <= 49)
    {
        total = (((x*99) - (x * 99)* .3));
        JOptionPane.showMessageDialog(null, "Your total is $" + total 
                + " with a 30% discount.");
    .
    .
    .

我想知道是否可以将可能的数字范围存储在单个变量中,然后将其用于case语句?在这种情况下使用switch语句有意义吗?我尝试在变量中拟合可能的数字范围(本质上是一个表达式,存储在声明为布尔值的变量中),但由于我声明了变量(x)用户为“JOptionPane输入”对话框输入的任何数字的解析的整数值,所以我不允许使用布尔变量。因此,我仍然对switch语句的工作原理有点困惑,但如果能在使用switch语句时提供帮助,我将不胜感激。

共有2个答案

姜增
2023-03-14

不,开关语句不支持范围。

从另一端考虑,考虑将您的可用折扣存储在枚举中,并使用一种检查每个折扣是否适用并将其应用于金额的方法。

湛财
2023-03-14

怎么样

if(total >= 100)
{
    //use 50%
}
else if(total >= 50)
{
    //use 40%
}
else if(total >= 20)
{
    //use 30%
}
else if(total >= 10)
{
    //use 20%
}
else
{
    //no discount
}

如果达到else If for总计

total = (((x*99) - (x * 99)* .2));

最好写为

total = x * 99 * (1-.2)

 类似资料:
  • 我需要为可以使用的范围值实现switch语句,但我认为switch的性能会更好。 我有这样的要求,如果变量的值在1-150之间,我将处理我的逻辑。如果变量的值在150-300之间,那么其他一些逻辑,如果范围在300-450,那么一些不同的逻辑等等。 所以在这种情况下如何使用开关,因为我通常使用固定值的开关。提前谢谢。

  • 问题内容: 在Java中,是否可以编写一个switch语句,其中每种情况都包含多个值?例如(尽管以下代码显然不起作用): 我认为这可以在Objective C中完成,Java中是否有类似的东西?或者我应该只使用,语句呢? 问题答案: Java没有这种东西。为什么不执行以下操作?

  • 在Java中,是否可以编写一个switch语句,其中每个大小写包含多个值?例如(尽管下面的代码显然不起作用): 我认为目标C可以这样做,Java是否也有类似的事情?还是只使用、语句?

  • 问题内容: 我只使用python从python中读取: 我对变量my_count的范围感到困惑。虽然打印效果很好,但是最好先用语句在外部做一些事情(例如,在C中用于做int ) 问题答案: 一个语句也 不能创建一个范围 (比如,和不要么创建一个范围)。 结果,Python将分析代码并看到您在语句中进行了赋值,从而使变量成为局部变量(在实际范围内)。 在Python中,变量不需要在 所有代码路径 中

  • 问题内容: 我正在学习Swift的语法,想知道为什么下面的代码无法按我期望的那样工作: 我想每次将数字除以3(3、6、9、12等)时都打印Fizz,并且每次将其除以5时都打印Buzz,那么缺少哪一块拼图? 注意:我确实使用以下方法解决了问题: 我想知道如何使用Switch解决此问题。谢谢。 问题答案: FizzBu​​zz游戏的通常规则 是用“ Fizz”替换每个3的倍数,用“ Buzz”替换每个

  • 本文向大家介绍Java中的Switch语句,包括了Java中的Switch语句的使用技巧和注意事项,需要的朋友参考一下 switch语句允许针对值列表对变量进行相等性测试。每个值称为一个案例,并针对每种情况检查要打开的变量。首先让我们看一下语法- 以下是适用于Java中switch语句的规则- switch语句中使用的变量只能是整数,可转换整数(字节,短整数,字符),字符串和枚举。 开关内可以有任