Discount C ++ программа с использованием оператора switch - PullRequest
0 голосов
/ 31 марта 2020

так что в основном я пытаюсь сделать небольшую программу, которая позволит пользователю ввести значение, тогда, если значение, равное или большее, чем 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 я понятия не имею, может быть миллион случаев ввода введенного значения, поэтому мне нужна помощь, если это возможно

Спасибо

1 Ответ

1 голос
/ 31 марта 2020

Один из способов будет

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 блок, или какая-то структура данных.

...