使用 switch 和 case 语句时出现错误 C2131
Error C2131 using switch and case statements
编译以下代码时,我收到此错误消息:
错误 C2131 表达式未计算为常量
这出现在所有 'case' 行中,例如
case (x == 10):
这是代码:
#include <iostream>
using namespace std;
int main()
{
int x;
cout << "Please enter your value for x" << endl;
cin >> x;
cout << "The value you entered for x is " << x << endl;
switch (x)
{
case (x == 10) :
{
x = x + 10;
cout << "x is " << x << endl;
}
case (x == 20) :
{
x = x + 20;
cout << "x is " << x << endl;
}
case (x == 30) :
{
x = x + 30;
cout << "x is " << x << endl;
}
case:
{
cout << "x is " << 2 * x << endl;
}
}
}
我意识到我一定是错误地使用了 switch 语句,有人可以纠正我吗?
谢谢
一个case
看起来就像case 10:
。在 case 中放置一个变量(不是常量表达式)会给你一个错误,因为在编译代码时需要知道 case 的值。此外,如果您不将 break
放在 case
的末尾,它将链接所有其他语句,直到遇到中断或 switch
的末尾。例如,以下代码将显示 12
;
switch (1)
{
case 1:
cout << "1";
case 2:
cout << "2";
break;
case 3:
cout << "3";
}
如果您想处理任何您没有案例的值,请使用 default
,而不是空案例。
switch (x)
{
//case statements
default:
cout << x * 2;
}
编译以下代码时,我收到此错误消息:
错误 C2131 表达式未计算为常量
这出现在所有 'case' 行中,例如
case (x == 10):
这是代码:
#include <iostream>
using namespace std;
int main()
{
int x;
cout << "Please enter your value for x" << endl;
cin >> x;
cout << "The value you entered for x is " << x << endl;
switch (x)
{
case (x == 10) :
{
x = x + 10;
cout << "x is " << x << endl;
}
case (x == 20) :
{
x = x + 20;
cout << "x is " << x << endl;
}
case (x == 30) :
{
x = x + 30;
cout << "x is " << x << endl;
}
case:
{
cout << "x is " << 2 * x << endl;
}
}
}
我意识到我一定是错误地使用了 switch 语句,有人可以纠正我吗? 谢谢
一个case
看起来就像case 10:
。在 case 中放置一个变量(不是常量表达式)会给你一个错误,因为在编译代码时需要知道 case 的值。此外,如果您不将 break
放在 case
的末尾,它将链接所有其他语句,直到遇到中断或 switch
的末尾。例如,以下代码将显示 12
;
switch (1)
{
case 1:
cout << "1";
case 2:
cout << "2";
break;
case 3:
cout << "3";
}
如果您想处理任何您没有案例的值,请使用 default
,而不是空案例。
switch (x)
{
//case statements
default:
cout << x * 2;
}