【发布时间】:2020-04-30 12:18:27
【问题描述】:
我试图为一个练习编写此代码,该练习显示并允许用户通过输入与他们选择的饮料相对应的数字 (1 - 5) 来选择饮料。然后它会打印出指定他们选择的饮料,如果他们输入了 1-5 之外的任何内容,则会显示错误消息。
下面是功能代码:
#include <vector>
std::string Vending (){
int num;
std::vector<std::string> beverage ={"Coke", "Sprite", "Water", "Pepsi", "7-Up"};
std::cin >> num;
switch (num){
case (1) :
std::cout << "You have chosen " << beverage[num-1];
break;
case (2) :
std::cout << "You have chosen " << beverage[num-1];
break;
case (3) :
std::cout << "You have chosen " << beverage[num-1];
break;
case (4) :
std::cout << "You have chosen " << beverage[num-1];
break;
case (5) :
std::cout << "You have chosen " << beverage[num-1];
break;
default :
std::cout << "Error, choice was not valid, here is your money back.\n";
break;
}
}
该程序运行良好,但我只是想知道是否有一种方法可以使 switch() 更短,例如在 case 中放置一个范围。 case(//range from 1-5) 而不是根据案例编号单独编写每个案例。
任何提示将不胜感激! :)
【问题讨论】:
-
提示:请注意,在每种情况下,您的代码都是完全相同的。如果您在所有情况下执行完全相同的操作,您是否只需要执行该操作?
-
GCC 支持
case 1 ... 5作为编译器扩展
标签: c++ switch-statement