我的任务是使用 C++ 创建一个 20 个问题的游戏,用户在其中想到一个 1 到 100 之间的数字,然后计算机会猜出它。为了做到这一点,我一直在尝试学习如何使用 switch 语句,因为我觉得这对我的主要代码有帮助。但是,我似乎无法将其归结为代码中非法中断的持续错误。我曾尝试更改代码并在网上寻找答案,但我找不到任何答案。我的代码如下:
#include <iostream>
using namespace std;
int main()
{
int i;
cout << "Enter an integer: ";
cin >> i;
switch (int i)
{
case i > 1 :
{
cout << "int greater than 1, less than 5"; endl;
break;
}
case i > 5 :
{
cout << "int greater than 5 less than 10"; endl;
break;
}
case i > 10 :
{
cout << "int greater than 10"; endl;
break;
}
}
system("PAUSE");
return 0;
}
显示的错误是:
error C2043: illegal break
如果有人能帮我回答为什么这些错误不断出现,我们将不胜感激!
最佳答案
你不应该将变量i
重新声明为int
,你可以直接传入
switch (i)
此外,这对于 switch
来说并不是一个很好的用例,因为您需要:
switch (i)
{
case 2:
case 3:
case 4:
case 5:
{
cout << "int greater than 1, less than 5" << endl;
break;
}
case 6:
case 7:
case 8:
case 9:
case 10:
{
cout << "int greater than 5 less than 10" << endl;
break;
}
///...etc
}
您真的应该只使用if
、else if
、else
,例如:
if (i > 1 && i < 5)
{
cout << "int greater than 1, less than 5" << endl;
}
else if (i >= 5 && i < 10)
{
cout << "int greater than 5 less than 10" << endl;
}
else if (i >= 10)
{
cout << "int greater than 10" << endl;
}
else
{
cout << "int less than 2" << endl;
}
还有你的cout
语句不正确
cout << "int greater than 1, less than 5"; endl;
应该是
cout << "int greater than 1, less than 5" << endl;
关于c++ - 20 个问题游戏 - Switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26537892/