可能重复:
How do I select a range of values in a switch statement?
c++ cannot appear in a constant-expression|
我要做的是生成一个随机数,并根据数字的值写出“Common”,“Rare”或“Very Rare”。有人可以帮帮我吗?
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int a;
srand(time(0));
a = 1 + (rand()%10);
switch (a)
{
case (a >= 0 && a <= 5):
cout << "Common";
break;
case (a >= 6 && a <= 8):
cout << "Rare";
break;
case (a >= 9 && a <= 10):
cout << "Very rare";
break;
default:
break;
}
return 0;
}
答案 0 :(得分:4)
您不能在开关案例中使用比较运算符。试试这个:
switch (a)
{
case 1:
case 2:
case 3:
case 4:
case 5:
cout << "Common";
break;
case 6:
case 7:
case 8:
cout << "Rare";
break;
case 9:
case 10:
cout << "Very rare";
break;
default:
break;
}
答案 1 :(得分:2)
如果你想检查范围我建议你使用if语句来避免使用所有可能值的列表:
if (a >= 0 && a <= 5)
cout << "Common";
else if (a >= 6 && a <= 8)
cout << "Rare";
else if (a >= 9 && a <= 10)
cout << "Very rare";