【问题标题】:Discount C++ program using a switch statement使用 switch 语句的折扣 C++ 程序
【发布时间】:2020-03-31 09:40:19
【问题描述】:

所以基本上我正在尝试做一个小程序,让用户输入一个值,然后如果该值等于或大于 x,则折扣类似于 12% 这是一个例子

15% discount, if sales are greater than or equal to 1000
10% discount, if sales are greater than or equal to 500
5% discount, if sales are greater than or equal to 250
0, otherwise.

我知道如何使用 if 语句,但在 switch 中我不知道,输入的值可能有数百万个案例,所以如果可能的话我需要帮助

谢谢

【问题讨论】:

  • 为什么要使用开关? switch 的参数应该是什么?
  • 你不能在一个开关中做多个大于或等于。听起来像是不适合这项工作的工具。

标签: c++ switch-statement


【解决方案1】:

一种方法是

int sales; // ToDo - needs a value
double discount;
switch (std::max(sales / 250, 4)){
case 4:
    discount = 0.15;
    break;
case 3: case 2:
    discount = 0.10;
    break;
case 1:
    discount = 0.05;
    break;
default:
    discount = 0.0;
}

但仅仅因为它是可能的并不意味着它是正确的做法。肯定不是。如果阈值发生变化,我的解决方案将是一个痛苦的调整——这确实是糟糕的程序设计,因为如果参数发生变化,你真的不想改变程序控制流。

使用if 块或某种数据结构。

【讨论】:

  • 我也在想同样的事情,但我的教授要求我们做一个如下图的作业imgur.com/G6Q3HOT我只是想弄清楚是否可能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多